Ich habe eine ChoiceBox in eine fxml mit JavaFX Scene Builder gelegt.Welches ChoiceBox-Event wählen?
Der FXML ist eine Steuerung zugewiesen.
Meine Frage ist: Welches Ereignis muss ich registrieren, wenn ich über veränderte Werte informiert werden möchte?
onInputMethodTextChanged="#languageSelectionModified"
dies mit dem folgenden Code nicht
public void languageSelectionModified(Event event) {
ChoiceBox<String> box = (ChoiceBox<String>) event.getSource();
System.out.println(box.getValue());
}
und funktioniert dies nur für den ersten Klick arbeiten (dh die Liste zu öffnen, nicht, wenn ein Element der Auswahl):
onMouseClicked="#languageSelectionModified"
Obwohl die Maus-Ereignisse aufgrund von Situationen, in denen die Berührung oder die Tastatur die Eingabemethode ist, niemals eine gute Wahl sein würden, beweist es dennoch, dass die System.out erreicht werden kann.
Ich habe absolut keine Ahnung, wo diese Dinge dokumentiert werden (in der Standard-Java-API sind sie nicht)
Vielen Dank für Ihre Antwort! Das funktioniert gut. Also gibt es keine Möglichkeit, dies über die 'normalen' FXML-Events zu tun? Wenn Sie mir sagen könnten, wo ich die vorhandenen (und definierbaren) Ereignisse für FXML-Dateien hätte suchen können, markiere ich Ihre Antwort als Antwort auf meine Frage. – Gundon
Nein, Sie können keine Ereignisse in FXML mit JavaFX 2.0 bis 2.2 suchen. – jewelsea
Das Auswahlmodell-Ereignis wird auch ausgelöst, wenn der Wert der Auswahlbox durch Code festgelegt wird (in meinem Fall habe ich eine Auswahlmöglichkeit, die eine Form von Kind-Auswahlfeldern ausfüllt), und ich wünschte, es gäbe eine saubere Möglichkeit, "benutzergesteuerte Änderungen" zu unterscheiden Code-getriebene. – Mikeb