JavaFX TabPane: Как установить выбранную вкладку - PullRequest
43 голосов
/ 01 августа 2011

У меня есть Java-приложение для настольного компьютера с 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);

Ответы [ 4 ]

88 голосов
/ 02 августа 2011

SelectionModel - правильный подход.Вы можете получить значение по умолчанию из TabPane или назначить собственную реализацию, используя setSelectionModel(...).Модель по умолчанию должна быть достаточно хорошей для начала.

SingleSelectionModel<Tab> selectionModel = tabPane.getSelectionModel();

После того, как вы сохранили ее в какой-то локальной переменной, у вас есть разные варианты выбора вкладки.чтобы выбрать несуществующую вкладку, ничего не произойдет.

20 голосов
/ 22 июля 2013

Для упрощения вышеупомянутого подхода:

myTabPane.getSelectionModel().select(myTab);
1 голос
/ 12 марта 2018

Чтобы продолжить с ответом Меная, вот как перефокусировать открытую вкладку / TabPane.

SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();
if(!Tabpane.getTabs().contains(tabName)) {
   TabPane.getTabs().add(tabName);
   selectionModel.select(tabPane);
} else {
   selectionModel.select(tabPane); 
}
0 голосов
/ 14 августа 2017

Если вы работаете с statique вкладками, я имею в виду, что ваша TabPane имеет постоянное количество вкладок, вы можете выбрать вкладку следующим образом:

 SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();

        selectionModel.select(tabName);

Если вы работаете с dynamicique tabs, я имею в виду, что ваша TabPane имеет динамическое количество вкладок (добавление и удаление вкладок), вы можете выбрать вкладку следующим образом:

        if (!TabPane.getTabs().contains(tabName)) {

        TabPane.getTabs().add(tabName);

    }
    SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();

    selectionModel.select(tabPane);
...