60 votes

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

J'ai une application de bureau Java avec JavaFX 2 et dans mon FX 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 trouvé qu'il existe plusieurs façons de savoir quel onglet est 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);

118voto

pmoule Points 4062

Le SelectionModel est la bonne approche. Vous pouvez obtenir la valeur par défaut de votre TabPane ou attribuer votre propre implémentation en utilisant setSelectionModel(...) . Le modèle par défaut devrait être assez bon 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.

36voto

Zon Points 518

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

 myTabPane.getSelectionModel().select(myTab);

1voto

Pour continuer avec la réponse de Menai, voici comment recentrer 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); 
}

-1voto

Menai Ala Eddine Points 675

Si vous travaillez avec des onglets statiques , je veux dire que votre TabPane a un nombre statique d'onglets, vous pouvez sélectionner votre onglet de cette manière :

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

        selectionModel.select(tabName);

Si vous travaillez avec des onglets dynamiques , je veux dire que votre TabPane a un nombre dynamique d'onglets (ajouter et supprimer des onglets), vous pouvez sélectionner votre onglet de cette façon :

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

        TabPane.getTabs().add(tabName);

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

    selectionModel.select(tabPane);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X