Je suis nouveau à JavaFX et j'essaie d'obtenir la valeur d'un champ de texte lorsque ma demande se ferme, j'ai donc utilisé
System.out.println(textField.getText());
3 Réponses :
Vous devez exécuter Essayez ce code: P> charger () code> avant d'obtenir le contrôleur.
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/Scene.fxml"));
loader.load();
FXMLController controllerClass = loader.getController();
controllerClass.getTextFieldValue();
System.out.println("closing");
la nullpointerException désapperrée mais le gettextfieldValue imprime une chaîne vide même s'il y a une chaîne dans le champ de texte
Votre question initiale ne semble pas fournir suffisamment de contexte pour que je réponde à cette question. Par exemple, quel est la méthode de Textfield dans votre méthode GetTextFieldValue ()?
Merci beaucoup pour l'aide et la réponse rapide, @FXML Textfield Textfield; Est-ce que le champ de texte est-ce que je veux obtenir le texte lorsque je ferme ma demande.
Ma suggestion serait de vérifier que vous obtenez le bon champ de texte cika celui qui correspond à celui que vous souhaitez obtenir le texte.
Avez-vous oublié d'ajouter Bien que je ne sache pas ce que vous essayez d'atteindre, mais je pense qu'il est plus facile et correct de le faire. P> fx: id code> dans votre
scène.fxml code>?
Veuillez fournir un autre exemple de votre code. Je ne sais pas ce qui se passe dans votre fichier
fxml code>. Je pense qu'il peut y avoir une sorte de code XML manquant.
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/Scene.fxml")));
loader.setController(new FXMLController()); // you can not get controller, unless you set it first
FXMLController controllerClass = loader.getController();
controllerClass.getTextFieldValue();
Merci pour l'aide, le FX: ID est correct, mon seul problème est maintenant que je ne peux pas obtenir la valeur actuelle du champ de texte. Son imprimant toujours une chaîne vide.
Charger () Code> Avant d'obtenir le contrôleur. LI>
- Pour obtenir la valeur du champ de texte lors de la fermeture de l'application, j'ai utilisé la classe Préférences de Java.Util.PRefs pour enregistrer le contenu du Textfield, puis je remplacerai la méthode
stop () code> Mon MainApp et récupéré la valeur sauvegardée dedans. Li>
ul>
Pas sûr que c'est la meilleure façon de le faire, mais cela a fonctionné pour moi, merci pour toute l'aide. P>