web-dev-qa-db-fra.com

JavaFX TabPane: Comment définir l'onglet sélectionné

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);
39
Dorothy

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.

81
pmoule

Pour simplifier l'approche mentionnée ci-dessus:

myTabPane.getSelectionModel().select(myTab);
19
Zon

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); 
}
1