Подтвердить что ты не робот

Как установить дополнение между столбцами JavaFX GridPane?

Я пытаюсь показать сетку с двумя столбцами в программе javaFx. Вот как я настраиваю сетку:

    GridPane grid = new GridPane();

    ColumnConstraints column1 = new ColumnConstraints();
    column1.setPercentWidth(50);
    ColumnConstraints column2 = new ColumnConstraints();
    column2.setPercentWidth(50);
    grid.getColumnConstraints().addAll(column1, column2); 

Вот проблема. Я хочу показать небольшое пространство между тем, где заканчивается один столбец, а другой начинается. Однако столбцы отображаются как приклеенные друг к другу.

Вот скриншот:

screenshot

Здесь каждый столбец содержит кнопки "item name" и "process, edit, delete".

Вы можете видеть, как столбцы склеены. Я хочу, чтобы у них вместо этого было какое-то пространство между ними.

Как я могу это решить?

Иерархия моего общего пользовательского интерфейса такова:

Сценa > ScrollPane > BorderPane > Vbox (Центр) > GridPane

4b9b3361

Ответ 1

Для лучшего внешнего вида вы можете использовать сочетание:

grid.setHgap(10); //horizontal gap in pixels => that what you are asking for
grid.setVgap(10); //vertical gap in pixels
grid.setPadding(new Insets(10, 10, 10, 10)); //margins around the whole grid
                                             //(top/right/bottom/left)

Ответ 2

В дополнение к ответу assylias вы можете настроить маржу для любого заданного node в сетке:

GridPane.setMargin(node, new Insets(5, 10, 5, 10));

GridPane.setMargin javadoc:

Устанавливает маржу для дочернего элемента, когда она содержится в gridpane. Если установлено, gridpane будет выкладывать его с пространством поля вокруг него. Установка значения в значение null приведет к удалению ограничения.

В конце концов (post Java 8), JavaFX может позволить вам установить маржи вокруг любого node, а не только в GridPane.