2011-08-01 20 views
34

JavaFX 2を使用したJavaデスクトップアプリケーションがあり、FXにはTabPaneがあります。私はデフォルトのタブを設定したい。言い換えれば、私は選択されたタブを設定したい。私は、どのタブが選択されているかを知る方法が複数あることを発見しました。setSelectionModel()が見つかりましたが、使用方法が分かりません。JavaFX TabPane:選択したタブを設定する方法

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

答えて

73

SelectionModelが適切なアプローチです。 TabPaneからデフォルトを取得するか、setSelectionModel(...)を使用して独自の実装を割り当てることができます。デフォルトのモデルは、最初に十分なはずです。

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

ローカル変数に格納したら、タブを選択するオプションが異なります。あなたは非既存のタブを選択しようとした場合

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

、何も起こりません。あなたはstatiqueタブで作業する場合、私はあなたのTabPaneタブのstatique数を持っている意味、あなたはこの方法であなたのタブを選択することができます

myTabPane.getSelectionModel().select(myTab); 
+0

これはうまくいきました。ありがとう! – Dorothy

16

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

     selectionModel.select(tabName); 

あなたはdynamiqueタブで作業する場合、私はあなたのTabPaneタブのdynamique番号を(追加、タブを削除する)があり、この方法によって、あなたのタブを選択することができます意味:

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

     TabPane.getTabs().add(tabName); 

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

    selectionModel.select(tabPane); 
-1

:上記のアプローチを簡素化するために