如何在JavaFX场景构建器中合并单元格?

时间:2014-01-20 06:37:52

标签: javafx javafx-2 scenebuilder

我有一个看起来像KeyBoard的网格窗格,我需要合并一些单元格来放置一个“空格”按钮..但是我无法在网格窗格的设置中找到任何可以解决我的问题的选项..有没有人有我是如何实现它的?

1 个答案:

答案 0 :(得分:24)

使用其中的项目设置网格

  1. 创建一个GridPane。
  2. 将节点放在网格中。
  3. 在网格中选择一个节点。
  4. 在此阶段选择网格中的节点非常非常重要。 。

    之后:

    :一种。使用菜单项

    1. 选择Modify | GridPane
    2. 选择

      中的任何一个
      Increase Row Span
      Decrease Row Span
      Increase Column Span
      Decrease Column Span
      
    3. <强> B中。使用布局面板

      1. 修改行跨度或列跨度值。
      2. 布局说明

        要真正得到一些东西来填充网格并按照您想要的方式跨越行或列,您可能需要修改节点的其他布局参数或布局面板中的网格约束。例如,Button通常不会超出其首选大小,因此将其最大高度和宽度设置为MAX_VALUE。另一个例子是让一个Label位于两列的中心,将其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>