2011-08-01 49 views
34

Tengo una aplicación Java Desktop con JavaFX 2 y en mi FX tengo un TabPane. Quiero establecer la pestaña predeterminada. En otras palabras, quiero establecer una pestaña como seleccionada. Descubrí que hay varias formas de averiguar qué pestaña está seleccionada y encontré setSelectionModel(), pero no sé cómo usarla.JavaFX TabPane: Cómo establecer la pestaña seleccionada

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

Respuesta

73

El SelectionModel es el enfoque correcto. Puede obtener el valor predeterminado de su TabPane o asignar su propia implementación usando setSelectionModel(...). El modelo predeterminado debe ser lo suficientemente bueno para el comienzo.

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

Una vez que lo almacenó en una variable local, tiene diferentes opciones para seleccionar una pestaña.

selectionModel.select(tab); //select by object 
selectionModel.select(1); //select by index starting with 0 
selectionModel.clearSelection(); //clear your selection 

Si intentas seleccionar una pestaña que no existe, no pasará nada.

+0

Eso funcionó. ¡Gracias! – Dorothy

16

Para simplificar el enfoque mencionado anteriormente:

myTabPane.getSelectionModel().select(myTab); 
-1

Si trabaja con statique pestañas, me refiero a su TabPane tiene el número statique de pestañas, puede seleccionar la pestaña de esta manera:

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

     selectionModel.select(tabName); 

Si trabaja con dynamique pestañas, me refiero a que su TabPane tiene un número dinámico de pestañas (agregar y quitar pestañas), puede seleccionar su pestaña de esta manera:

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

     TabPane.getTabs().add(tabName); 

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

    selectionModel.select(tabPane); 
Cuestiones relacionadas