Heim >Java >javaLernprogramm >Warum funktioniert meine JavaFX-Controller-Klasse nicht?
JavaFX-Controller-Klasse funktioniert nicht
Der bereitgestellte Code stellt eine Schnittstelle zu einer TextArea als Protokoll dar. Das Ziel besteht darin, den TextArea-Inhalt bei Bedarf aus einer separaten Klasse zu aktualisieren. Dies erfordert die Erstellung einer Controller-Klasse, die Initializable erweitert. Die Controller-Implementierung funktioniert jedoch nicht ordnungsgemäß.
Lösung
Der Code weist ein grundlegendes Problem auf: Die Anwendungsklasse wird als Controller verwendet. Von dieser Vorgehensweise wird abgeraten, weil:
Darüber hinaus wird empfohlen, die Grundfunktionen der Benutzeroberfläche abzuschließen, bevor Multithreading implementiert wird.
Überarbeiteter Code
Hier ist der korrigierte Code mit separaten Klassen für den Controller, den Web-Importer und das Textprotokollierungsbeispiel:
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 ( Einstiegspunkt)
<code class="java">... Parent root = loader.load( getClass().getResourceAsStream( "Root.fxml" ) ); ...</code>
Fazit
Durch die Trennung der Controller-Klasse und die Verwendung des richtigen Ansatzes für Multithreading kann die Anwendung nun erfolgreich die TextArea von a aktualisieren separate Klasse.
Das obige ist der detaillierte Inhalt vonWarum funktioniert meine JavaFX-Controller-Klasse nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!