2011-08-01 14 views
34

Mam aplikację Java Desktop z obsługą JavaFX 2, aw moim FX mam TabPane. Chcę ustawić domyślną kartę. Innymi słowy, chcę ustawić kartę jako wybraną. Zauważyłem, że istnieje wiele sposobów sprawdzania, która karta jest wybrana, i znalazłem setSelectionModel(), ale nie wiem, jak jej użyć.JavaFX TabPane: Jak ustawić wybraną zakładkę?

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

Odpowiedz

73

Właściwe jest podejście SelectionModel. Możesz uzyskać domyślną wartość swojego TabPane lub przypisać własną implementację za pomocą setSelectionModel(...). Domyślny model powinien wystarczyć na początek.

Po zapisaniu w zmiennej lokalnej dostępne są różne opcje wyboru karty.

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

Jeśli spróbujesz wybrać nieistniejącą kartę, nic się nie stanie.

+0

To działało. Dzięki! – Dorothy

16

Aby uprościć Powyższy podejście:

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

Jeśli pracujesz z statique zaczepy, to znaczy swoją TabPane ma numer statique zakładek, można wybrać kartę w ten sposób:

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

     selectionModel.select(tabName); 

Jeśli pracujesz z kartami dynamique, mam na myśli twoja TabPane ma dynamiczną liczbę zakładek (dodawanie i usuwanie kart), możesz wybrać swoją kartę w ten sposób:

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

     TabPane.getTabs().add(tabName); 

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

    selectionModel.select(tabPane); 
Powiązane problemy