Rumah  >  Artikel  >  Java  >  Mengapa Kelas Pengawal JavaFX saya tidak berfungsi?

Mengapa Kelas Pengawal JavaFX saya tidak berfungsi?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 01:36:29627semak imbas

Why is my JavaFX Controller Class not working?

Kelas Pengawal JavaFX Tidak Berfungsi

Kod yang disediakan antara muka dengan TextArea sebagai log. Matlamatnya adalah untuk mengemas kini kandungan TextArea daripada kelas berasingan apabila diperlukan. Ini memerlukan mencipta kelas pengawal yang memanjangkan Boleh Dimulakan. Walau bagaimanapun, pelaksanaan pengawal tidak berfungsi dengan betul.

Penyelesaian

Kod ini mempunyai isu asas: kelas Aplikasi sedang digunakan sebagai pengawal. Amalan ini tidak digalakkan kerana:

  • Hanya ada satu tika Aplikasi, tetapi pemuat selalunya mencipta berbilang kejadian.
  • Merujuk objek ahli pengawal boleh mengelirukan, kerana ia berbeza dalam ketersediaan medan antara aplikasi yang dilancarkan dan contoh aplikasi yang dibuat oleh pemuat.

Selain itu, disyorkan untuk melengkapkan kefungsian asas UI sebelum melaksanakan berbilang benang.

Kod Disemak

Berikut ialah kod yang diperbetulkan menggunakan kelas berasingan untuk pengawal, pengimport web dan sampel pengelogan teks:

Root.fxml

<code class="xml">...
fx:controller="textlogger.ImportController"
...</code>

ImportController.java

<code class="java">...
private WebImporter importer;
...</code>

WebImporter.java

<code class="java">...
private final TextArea textArea;
...</code>

TextLoggingSample.java ( titik masuk)

<code class="java">...
Parent root = loader.load(
    getClass().getResourceAsStream(
            "Root.fxml"
    )
);
...</code>

Kesimpulan

Dengan mengasingkan kelas pengawal dan menggunakan pendekatan yang betul untuk berbilang benang, aplikasi kini boleh berjaya mengemas kini TextArea daripada kelas berasingan.

Atas ialah kandungan terperinci Mengapa Kelas Pengawal JavaFX saya tidak berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn