La classe de contrôleur JavaFX ne fonctionne pas
Le code fourni s'interface avec une TextArea sous forme de journal. L'objectif est de mettre à jour le contenu de TextArea à partir d'une classe distincte si nécessaire. Cela nécessite la création d’une classe de contrôleur qui étend Initialisable. Cependant, l'implémentation du contrôleur ne fonctionne pas correctement.
Solution
Le code présente un problème fondamental : la classe Application est utilisée comme contrôleur. Cette pratique est déconseillée car :
De plus, il est recommandé de compléter les fonctionnalités de base de l'interface utilisateur avant d'implémenter le multithreading.
Code révisé
Voici le code corrigé utilisant des classes distinctes pour le contrôleur, l'importateur Web et l'exemple de journalisation de texte :
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 ( point d'entrée)
<code class="java">... Parent root = loader.load( getClass().getResourceAsStream( "Root.fxml" ) ); ...</code>
Conclusion
En séparant la classe du contrôleur et en utilisant l'approche appropriée pour le multi-threading, l'application peut désormais mettre à jour avec succès la TextArea à partir d'un classe séparée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!