JavaFX TabPane: Wie Sie hören, Auswahl ändert
Ich möchte einige Aktionen ausführen, wenn der Benutzer geht von einer Registerkarte zu einer anderen, da ich meine form design mit Scene Builder kann ich nicht verwenden Sie den code erwähnt hier (Er verwendet TabPaneBuilder
Klasse)
Dachte ich, dieser code würde funktionieren, aber es reagiert nicht auf tab-Auswahl verpasst.
@FXML
protected TabPane chatTabs;
.
.
.
chatTabs.selectionModelProperty().addListener(
new ChangeListener<SingleSelectionModel<Tab>> {
@Override
public void changed(ObservableValue<? extends SingleSelectionModel<Tab>> ov, SingleSelectionModel<Tab> t, SingleSelectionModel<Tab> t1) {
System.err.println("changed");
}
}
}
);
InformationsquelleAutor MJafar Mash | 2013-07-08
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den richtigen Weg zu verwenden, ändern Hörer ist diese:
Warum die in Frage stehenden code hat nicht funktioniert? Ich denke, es ist, weil Ihre änderung-listener lauscht auf änderungen in "
selectionModel
" statt "selectedItem
"Finden Sie heraus, wenn Sie eine Registerkarte Hinzugefügt oder entfernt wurde, ist ein wenig kniffliger:
InformationsquelleAutor
Oder in Java 8 mit lambda-Ausdrücken....
InformationsquelleAutor user3190916
Ich denke, viel besser und natürlicher Ansatz ist die Nutzung von Tab.setOnSelectionChanged.
Hier ist eine komplette kleine Programm implementiert diesen Ansatz.
Sie können sehen, ein VIEL ausführlicheres Beispiel hier:
http://sandsduchon.org/duchon/cs335/fx020.html
Beachten Sie, dass sollten Sie auch mit Tab.isSelected, um richtig reagieren zu Sie diese Registerkarte geöffnet haben oder deaktivieren Sie, dass diese Registerkarte.
InformationsquelleAutor Nicholas Duchon