webdevqa.jp.net

JavaFX TabPane:選択したタブを設定する方法

Java JavaFX 2を含むデスクトップアプリケーションがあり、FXにTa​​bPaneがあります。デフォルトのタブを設定します。つまり、選択したタブを設定します。どのタブが選択されているかを調べる方法は複数あることがわかり、setSelectionModel()が見つかりましたが、その使用方法がわかりません。

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

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

存在しないタブを選択しようとしても、何も起こりません。

88
pmoule

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

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

メナイの答えを続けるには、開いたタブ/ TabPaneに再び焦点を合わせる方法がここにあります。

SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();
if(!Tabpane.getTabs().contains(tabName)) {
   TabPane.getTabs().add(tabName);
   selectionModel.select(tabPane);
} else {
   selectionModel.select(tabPane); 
}