web-dev-qa-db-ja.com

JavaFX Scene Builderでセルをマージする方法は?

キーボードのように見えるグリッドペインがあり、「スペース」ボタンを配置するためにいくつかのセルをマージする必要があります。しかし、グリッドペインの設定に問題を解決するオプションが見つかりません。私はそれを達成できましたか?

15
Artem Ruchkov

グリッドをセットアップしますアイテムをそこに入れます

  1. GridPaneを作成します。
  2. グリッドにノードを配置します。
  3. グリッド内のノードを選択します。

この段階でグリッド内のノードを選択することは非常に重要です。 。 。

その後のいずれか:

A。メニュー項目を使用

  1. Modify | GridPaneを選択します
  2. いずれかを選択

    Increase Row Span
    Decrease Row Span
    Increase Column Span
    Decrease Column Span
    

B。レイアウトパネルを使用

  1. 行スパンまたは列スパンの値を変更します。

レイアウトノート

実際にグリッドを埋めて行または列を希望どおりに広げるには、ノードの他のレイアウトパラメータまたはレイアウトパネルのグリッド制約を変更する必要がある場合があります。たとえば、ボタンは通常、推奨サイズを超えて大きくなることはないため、最大の高さと幅をMAX_VALUEに設定します。もう1つの例は、ラベルを2つの列の中央に配置し、そのHgrowをALWAYSに設定し、HalignmentをCENTERに設定することです。

サンプルスクリーンショット

行と列のスパンを設定するためのメニュー項目があり、右端に同じためのレイアウトテキストフィールドもあります。残念ながら、StackOverflowは写真を圧縮し、少しぼやけさせます。

gridview

サンプルFXML

<?xml version="1.0" encoding="UTF-8"?>

<?import Java.lang.*?>
<?import Java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.Paint.*?>

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
  <children>
    <GridPane layoutX="116.0" layoutY="155.0">
      <children>
        <Button maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Button" GridPane.columnIndex="0" GridPane.columnSpan="2147483647" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.vgrow="ALWAYS" />
        <Label text="Label" GridPane.columnIndex="0" GridPane.rowIndex="0" />
        <Label maxWidth="-1.0" text="Label" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowIndex="0" />
        <Label text="Label" GridPane.columnIndex="0" GridPane.rowIndex="2" />
        <Label text="Label" GridPane.columnIndex="1" GridPane.rowIndex="2" GridPane.rowSpan="2" />
        <Label text="Label" GridPane.columnIndex="2" GridPane.rowIndex="2" />
        <Label text="Label" GridPane.columnIndex="2" GridPane.rowIndex="3" />
      </children>
      <columnConstraints>
        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
      </columnConstraints>
      <rowConstraints>
        <RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        <RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        <RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        <RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      </rowConstraints>
    </GridPane>
  </children>
</AnchorPane>
25
jewelsea