J'ai une application de bureau Java avec JavaFX 2 et dans mes effets j'ai un TabPane. Je veux définir l'onglet par défaut. En d'autres termes, je veux définir un onglet comme sélectionné. J'ai découvert qu'il y avait plusieurs façons de trouver l'onglet sélectionné et j'ai trouvé setSelectionModel()
mais je ne sais pas comment l'utiliser.
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);
La SelectionModel
est la bonne approche. Vous pouvez obtenir la valeur par défaut de votre TabPane
ou affecter votre propre implémentation à l'aide de setSelectionModel(...)
. Le modèle par défaut devrait être suffisant pour le début.
SingleSelectionModel<Tab> selectionModel = tabPane.getSelectionModel();
Une fois que vous l'avez stocké dans une variable locale, vous avez différentes options pour sélectionner un onglet.
selectionModel.select(tab); //select by object
selectionModel.select(1); //select by index starting with 0
selectionModel.clearSelection(); //clear your selection
Si vous essayez de sélectionner un onglet non existant, rien ne se passera.
Pour simplifier l'approche mentionnée ci-dessus:
myTabPane.getSelectionModel().select(myTab);
Pour continuer avec la réponse de Menai, voici comment reconcentrer l'onglet/TabPane ouvert.
SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();
if(!Tabpane.getTabs().contains(tabName)) {
TabPane.getTabs().add(tabName);
selectionModel.select(tabPane);
} else {
selectionModel.select(tabPane);
}