JavaFXでタブを作成・表示する方法について記載します。
タブを作成・表示する方法
タブを表示するには、TabPaneクラスとTabクラスを使用します。
TabPaneクラス:各タブを管理
Tabクラス:各タブ毎に作成
次の例では、3つのタブを作成します。
タブの作成方法をイメージしやすいように、各タブにコンテンツは設定していません。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage pStage) throws Exception { /* TabPaneに追加する各タブを生成 */ /* --- Tab1 ------------------- */ Tab tab1 = new Tab(); tab1.setText("Tab1"); // タブのタイトル /* --- Tab2 ------------------- */ Tab tab2 = new Tab(); tab2.setText("Tab2"); // タブのタイトル /* --- Tab3 ------------------- */ Tab tab3 = new Tab(); tab3.setText("Tab3"); // タブのタイトル /* 作成した各タブをTabPaneに追加 */ TabPane tabPane = new TabPane(); tabPane.getTabs().addAll(tab1, tab2, tab3); /* 配置 */ pStage.setTitle("TabPane"); pStage.setWidth(400); pStage.setHeight(300); pStage.setScene(new Scene(tabPane)); pStage.show(); } public static void main(String[] args){ Application.launch(args); } } |
次に各タブにコンテンツを設定します。
コンテンツを設定するには、TabクラスのsetContentメソッドを使用します。
実行例
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
import javafx.application.Application; import javafx.collections.FXCollections; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.ListView; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage pStage) throws Exception { /* TabPaneに追加する各タブを生成 */ /* --- Tab1 ------------------- */ Tab tab1 = new Tab(); tab1.setText("Tab1"); // tab1 に設定するコンテンツ TextField text1 = new TextField(); text1.setMaxWidth(200);; TextField text2 = new TextField(); text2.setMaxWidth(200); VBox vbox1 = new VBox(); vbox1.setSpacing(20); vbox1.setPrefWidth(300); vbox1.setAlignment(Pos.CENTER); vbox1.getChildren().addAll( text1, text2 ); // tab1 のコンテンツを設定 tab1.setContent(vbox1); /* --- Tab2 ------------------- */ Tab tab2 = new Tab(); tab2.setText("Tab2"); // tab2 に設定するコンテンツ ListView<String> listview1 = new ListView<>(); listview1.setItems(FXCollections.observableArrayList("Apple","Orange","Banana")); // tab2 のコンテンツを設定 tab2.setContent(listview1); /* --- Tab3 ------------------- */ Tab tab3 = new Tab(); tab3.setText("Tab3"); // tab3 に設定するコンテンツ TextArea textArea1 = new TextArea(); textArea1.setMaxWidth(300); textArea1.setMaxHeight(200); VBox vbox2 = new VBox(); vbox2.setSpacing(20); vbox2.setPrefWidth(300); vbox2.setAlignment(Pos.CENTER); vbox2.getChildren().add( textArea1 ); // tab3 のコンテンツを設定 tab3.setContent(vbox2); /* 作成した各タブをTabPaneに追加 */ TabPane tabPane = new TabPane(); tabPane.getTabs().addAll(tab1, tab2, tab3); /* 配置 */ pStage.setTitle("TabPane"); pStage.setWidth(400); pStage.setHeight(300); pStage.setScene(new Scene(tabPane)); pStage.show(); } public static void main(String[] args){ Application.launch(args); } } |