Панель вкладок JavaFX: как установить выбранную вкладку
У меня есть приложение Java Desktop с JavaFX 2, и в моем FX у меня есть TabPane. Я хочу установить вкладку по умолчанию. Другими словами, я хочу установить вкладку как выбранную. Я обнаружил, что есть несколько способов узнать, какая вкладка выбрана, и я нашел setSelectionModel()
, но я не могу понять, как ее использовать.
TabPane tabPane = new TabPane();
Tab tab0 = new Tab("blue");
tab.setContent(new Rectangle(200,200, Color.BLUE));
Tab tab1 = new Tab("green");
tab.setContent(new Rectangle(200,200, Color.GREEN));
tabPane.getTabs().addAll(tab0, tab1);
Ответы
Ответ 1
SelectionModel
- правильный подход. Вы можете получить значение по умолчанию из TabPane
или назначить свою собственную реализацию, используя setSelectionModel(...)
. Модель по умолчанию должна быть достаточно хорошей для начала.
SingleSelectionModel<Tab> selectionModel = tabPane.getSelectionModel();
Как только вы сохранили его в некоторой локальной переменной, у вас есть разные опции для выбора вкладки.
selectionModel.select(tab); //select by object
selectionModel.select(1); //select by index starting with 0
selectionModel.clearSelection(); //clear your selection
Если вы попытаетесь выбрать не существующую вкладку, ничего не произойдет.
Ответ 2
Чтобы упростить вышеупомянутый подход:
myTabPane.getSelectionModel().select(myTab);
Ответ 3
Попробуйте этот код
if (!MessagePane.getTabs().contains(NewMessageTab)) {
MessagePane.getTabs().add(NewMessageTab);
}
SingleSelectionModel<Tab> selectionModel = MessagePane.getSelectionModel();
selectionModel.select(NewMessageTab);