Как объединить ячейки в JavaFX Scene builder?

У меня gridpane выглядит как KeyBoard, и мне нужно объединить некоторые ячейки, чтобы поместить кнопку "Space". Но я не могу найти какой-либо параметр в настройках gridpane, который бы разрешил мою проблему. Кто-нибудь есть идея, как я мог это достичь?

Ответ 1

Установите свою сетку с элементами в ней

  • Создайте GridPane.
  • Поместите узлы в сетку.
  • Выберите node в сетке.

Очень важно, чтобы на этой стадии был выбран node в сетке.,.

После этого либо:

а. Используйте элементы меню

  • Выберите Modify | GridPane
  • Выберите любой из

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

В. Используйте панель макета

  • Измените значения Row Span или Column Span.

Заметки о макетах

Чтобы действительно получить что-то, чтобы заполнить строки и столбцы сетки и диапазона так, как вы хотите, вам может потребоваться изменить другие параметры макета node или ограничения сетки на панели макета. Например, кнопка обычно не вырастает за пределы предпочтительного размера, поэтому установите максимальную высоту и ширину в MAX_VALUE. Другим примером является то, что ярлык центрирован по двум столбцам, установите его Hgrow в ALWAYS и его вытеснение в 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>