Javafx-layout-panes
JavaFX-レイアウトペイン(コンテナ)
シーンに必要なすべてのノードを構築した後、通常、それらを順番に配置します。
コンテナ内のコンポーネントのこの配置は、コンテナのレイアウトと呼ばれます。 また、コンテナ内の特定の位置にすべてのコンポーネントを配置することも含まれているため、レイアウトに従っていると言えます。
JavaFXは、 HBox、VBox、Border Pane、Stack Pane、Text Flow、Anchor Pane、Title Pane、Grid Pane、Flow Panel などのいくつかの定義済みレイアウトを提供します。
上記の各レイアウトはクラスによって表され、これらのクラスはすべてパッケージ javafx.layout に属します。 Pane という名前のクラスは、JavaFXのすべてのレイアウトの基本クラスです。
レイアウトを作成する
レイアウトを作成するには、する必要があります-
- ノードを作成します。
- 必要なレイアウトのそれぞれのクラスをインスタンス化します。
- レイアウトのプロパティを設定します。
- 作成したすべてのノードをレイアウトに追加します。
ノードを作成する
まず、それぞれのクラスをインスタンス化して、JavaFXアプリケーションの必要なノードを作成します。
たとえば、テキストボックスと2つのボタン、つまりHBoxレイアウトでの再生と停止が必要な場合は、次のコードブロックに示すように、最初にこれらのノードを作成する必要があります-
//Creating a text field
TextField textField = new TextField();
//Creating the play button
Button playButton = new Button("Play");
//Creating the stop button
Button stopButton = new Button("stop");
各クラスのインスタンス化
ノードを作成した後(およびそれらに対するすべての操作を完了した後)、必要なレイアウトのクラスをインスタンス化します。
たとえば、Hboxレイアウトを作成する場合は、次のようにこのクラスをインスタンス化する必要があります。
HBox hbox = new HBox();
レイアウトのプロパティを設定する
クラスをインスタンス化した後、それぞれのセッターメソッドを使用してレイアウトのプロパティを設定する必要があります。
例-HBoxレイアウトで作成されたノード間にスペースを設定する場合は、spacingという名前のプロパティに値を設定する必要があります。 これは、以下に示すように、セッターメソッド* setSpacing()*を使用して行うことができます-
hbox.setSpacing(10);
シェイプオブジェクトをグループに追加する
最後に、以下に示すように、コンストラクターのパラメーターとして渡すことにより、図形のオブジェクトをグループに追加する必要があります。
//Creating a Group object
Group root = new Group(line);
レイアウトペイン
以下は、JavaFXが提供するさまざまなレイアウトペイン(クラス)です。 これらのクラスは、パッケージ javafx.scene.layout に存在します。
S.No | Shape & Description |
---|---|
1 |
HBoxレイアウトは、アプリケーション内のすべてのノードを単一の水平行に配置します。 パッケージ javafx.scene.layout の HBox という名前のクラスは、テキストの水平ボックスレイアウトを表します。 |
2 |
VBoxレイアウトは、アプリケーション内のすべてのノードを単一の垂直列に配置します。 パッケージ javafx.scene.layout の VBox という名前のクラスは、テキストの垂直ボックスレイアウトを表します。 |
3 |
Border Paneレイアウトは、アプリケーション内のノードを上下左右に配置します。 パッケージ javafx.scene.layout の BorderPane という名前のクラスは、境界ペインレイアウトを表します。 |
4 |
スタックペインレイアウトは、アプリケーションのノードをスタックのように別のノードの上に配置します。 最初に追加されたノードはスタックの下部に配置され、次のノードはスタックの上部に配置されます。 パッケージ javafx.scene.layout の StackPane というクラスは、スタックペインレイアウトを表します。 |
5 |
テキストフローレイアウトは、単一のフローに複数のテキストノードを配置します。 パッケージ javafx.scene.layout の TextFlow という名前のクラスは、テキストフローレイアウトを表します。 |
6 |
アンカーペインレイアウトは、ペインから特定の距離にあるアプリケーションのノードを固定します。 パッケージ javafx.scene.layout の AnchorPane という名前のクラスは、アンカーペインレイアウトを表します。 |
7 |
タイルペインレイアウトは、アプリケーションのすべてのノードを均一なサイズのタイルの形式で追加します。 パッケージ javafx.scene.layout の TilePane という名前のクラスは、TilePaneレイアウトを表します。 |
8 |
グリッドペインレイアウトは、アプリケーション内のノードを行と列のグリッドとして配置します。 このレイアウトは、JavaFXを使用してフォームを作成するときに便利です。 パッケージ javafx.scene.layout の GridPane という名前のクラスは、GridPaneレイアウトを表します。 |
9 |
フローペインのレイアウトは、フロー内のすべてのノードをラップします。 水平フローペインはペインの要素をその高さでラップし、垂直フローペインは要素をその幅でラップします。 パッケージ javafx.scene.layout の FlowPane という名前のクラスは、フローペインレイアウトを表します。 |