Как установить дополнение между столбцами 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
Ответы
Ответ 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.