Как объединить ячейки в конструкторе сцен JavaFX?

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


person Artem Ruchkov    schedule 20.01.2014    source источник


Ответы (1)


Настройте сетку с элементами в ней

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

Очень и очень важно, чтобы на этом этапе был выбран узел в сетке. . .

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

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

  1. Выберите Modify | GridPane
  2. Выберите любой из

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

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

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

Примечания к макету

Чтобы действительно получить что-то, что заполнит сетку и охватит строки или столбцы так, как вы хотите, вам может потребоваться изменить другие параметры макета узла или его ограничения сетки на панели макета. Например, кнопка обычно не увеличивается за пределы своего предпочтительного размера, поэтому установите для ее максимальной высоты и ширины значение MAX_VALUE. Другим примером является размещение метки по центру двух столбцов, установка ее Hgrow на ВСЕГДА и ее 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>
person jewelsea    schedule 20.01.2014