Wie kann ich den ausgewählten Wert einer fxml-Combobox abfangen und in eine Javafx-Klasse implementieren?
Ich gab der Combobox die fx: id "sample" und erstellte eine Schaltfläche mit onAction="# test" und versuchte .getValue und .getPromptText.
%Vor%Wenn ich versuche, es auszuführen, erhalte ich einen Fehler:
%Vor%Vielen Dank im Voraus
Zombie
Ich denke, der Code, den Sie in Ihrer Frage haben, sollte so lange funktionieren, wie die Groß- und Kleinschreibung des Combobox-Identifikators im Code mit der Ihres fxml fx:id
übereinstimmt.
Ich habe diese JavaFX fxml-Auswahldialog-App für die Auswahlliste modifiziert, um eine Schaltfläche mit einer onAction-Methode hinzuzufügen, von der ein Wert abgerufen werden kann das Kombinationsfeld mit der Methode ComboBox getValue()
und es hat gut für mich funktioniert.
Überprüfen Sie den Fall der Dinge, ich bemerke, dass Sie das fx:id
ist sample
sagen, aber in Ihrem Code verwenden Sie Sample
- und die Fälle müssen übereinstimmen, andernfalls wird der fxml loader den Knoten nicht in Ihren injizieren Controller korrekt.
Schwer zu sagen, ob die NullPointerException
in Ihrem Code mit dem Abfrageproblem Ihres Combobox-Werts zusammenhängt, da Sie nicht sagen, was der Code in TW_JAVAFX_Undecorator.ButtonController.pruefen(ButtonController.java:60)
ist oder vollständigen ausführbaren Code zur Replizierung des Problems bereitstellen.
Um den ausgewählten ComboBox-Wert zu erhalten, können Sie Sample.getSelectionModel
method verwenden.
Beispiel:
%Vor% Ich habe versucht, eine Antwort auf diesen Fehler zu finden (was mir gerade unter gleichen Bedingungen passiert ist) und habe diesen Beitrag gefunden.
Wenn Sie tatsächlich Ihre ComboBox-Kennung korrekt deklariert haben, wie jewelsea sagte (wenn nicht, ich denke, dass ein anderer Fehler aufgetreten wäre).
Tatsache ist, dass alles gut deklariert wurde (kein Syntaxfehler oder Kompilierfehler).
Der Fehler liegt in der Laufzeit, das Ereignis @FXML protected void test(ActionEvent event)
wurde ausgeführt, wenn Sie Daten in Ihre ComboBox füllen / hinzufügen.
Aber Wert Eigenschaft ändert sich nicht, da keine Benutzereingabe erkannt wurde (I ' Ich nehme an, du fügst Daten zu deiner ComboBox an anderer Stelle hinzu, wenn du die Szene initialisierst
Also getValue()
gibt null zurück.
In diesem Fall lautet die Zeile, die den Code unterbrochen hat:
%Vor% Weil die Ausgabe null
ist.
Versuchen Sie, am Anfang von test(ActionEvent event)
method einen Haltepunkt einzufügen.
Ich erwarte diese Hilfe auch anderen.