HOWTO · Java

JavaFX でのグリッドと子ノードの配置

このチュートリアルでは、JavaFX でのグリッドと子ノードの配置について説明します。

このページの内容

JavaFX には、GridPane という名前の UI コンポーネントがあります。この UI コンポーネントを介して、すべての子ノードが列と行のグリッドの形式で配置されます。

このコンポーネントに必要なパッケージは javafx.scene.layout です。

この記事では、アラインメントについて説明し、理解を深めるためにこのトピックに関する例を説明します。

JavaFX でのグリッドと子ノードの配置

次の例では、ラベル付きのグリッドペインを作成しました。この例のコードを以下に示します。

import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class FxGrid extends Application {
  @Override
  public void start(Stage stage) {
    Label lbl = new Label("Simple grid example ..."); // Creating a label with text
    GridPane gridPane = new GridPane(); // Creating a Grid Pane

    gridPane.setPadding(new Insets(10, 10, 10, 10)); // Set the padding of the gridpane

    // Set the vertical and horizontal gaps between the columns
    gridPane.setVgap(15);
    gridPane.setHgap(15);

    gridPane.add(lbl, 0, 1); // Adding the label to the grid pane
    gridPane.setAlignment(Pos.CENTER); // Align the grid pane
    GridPane.setHalignment(lbl, HPos.RIGHT); // Setting the alignment for the child node of grid
                                             // pane

    Scene scene = new Scene(gridPane, 300, 300); // Creating a scene  with necessary size

    stage.setTitle("Grid Alignment Example"); // Setting title to the Application

    stage.setScene(scene); // Adding scene to the stage

    stage.show(); // Displaying the contents of the stage
  }
  public static void main(String args[]) {
    launch(args); // Launching the application
  }
}

コードの各行の目的については、すでに上記でコメントしています。ここで、トピックの主要部分について説明します。

行 gridPane.setVgap(15); gridPane.setHgap(15);、各列の垂直方向と水平方向のギャップを作成しました。また、gridPane.setPadding(new Insets(10, 10, 10, 10)); の行にパディングを追加しました。

最も重要な部分は、グリッドペインと子ノードを別々に配置することです。コードでは、gridPane.setAlignment(Pos.CENTER); の行を使用してグリッドペインを整列し、GridPane.setHalignment(lbl, HPos.RIGHT); の行を使用しての子ノードを整列しました。グリッド。

この場合、子ノードのみがラベルを持っています。上記のサンプルコードをコンパイルしてご使用の環境で実行すると、以下の出力が得られます。

出力:

JavaFXGridPane アライメント出力

利用可能な Hbox アライメント

以下にリストされているのは、グリッドペインの子で使用可能なすべての配置です。それらを setHalignment() メソッド内に設定する必要があります。

このメソッドの一般的な形式は、setHalignment( ChildNode, Alignment) です。

配置 説明
HPos.BASELINE_LEFT ベースラインを垂直に揃え、左に水平に揃えます
HPos.BASELINE_CENTER ベースラインを垂直に揃え、中央を水平に揃えます
HPos.BASELINE_RIGHT ベースラインを垂直に揃え、右に水平に揃えます
HPos.BOTTOM_LEFT 下を垂直に揃え、左を水平に揃えます
HPos.BOTTOM_CENTER 下を垂直に揃え、中央を水平に揃えます
HPos.BOTTOM_RIGHT 下を垂直に揃え、右を水平に揃えます
HPos.CENTER_LEFT 中央を垂直に揃え、左を水平に揃えます
HPos.CENTER 中央を垂直に揃え、中央を水平に揃えます
HPos.CENTER_RIGHT 中央を垂直に揃え、右に水平に揃えます
HPos.TOP_LEFT 上を垂直に揃え、左を水平に揃えます
HPos.TOP_CENTER 上を垂直に揃え、中央を水平に揃えます
HPos.TOP_RIGHT 上を垂直に揃え、右に水平に揃えます

IDE がライブラリとパッケージの自動インクルードをサポートしていない場合は覚えておいてください。次に、コンパイルする前に、これらの必要なライブラリとパッケージを手動で含める必要がある場合があります。