fxml Combobox, holen Sie den ausgewählten Wert in javafx

8

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

    
user2361460 08.05.2013, 10:04
quelle

4 Antworten

6

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.

    
jewelsea 09.05.2013, 06:37
quelle
26

Versuchen Sie Folgendes:

%Vor%     
RayFoX 26.07.2013 00:00
quelle
2

Um den ausgewählten ComboBox-Wert zu erhalten, können Sie Sample.getSelectionModel method verwenden.

Beispiel:

%Vor%     
Maulik Patel 22.03.2014 04:06
quelle
0

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.

    
hmojica 12.05.2014 16:19
quelle

Tags und Links