2013-12-08 3 views
19

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

GridPane grid = new GridPane(); 

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

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

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

screenshot

Здесь каждый столбец содержит 'имя элемента' и 'процесс, редактировать, удалять' кнопки.

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

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

Иерархия моего общего интерфейса заключается в следующем:

Scene> ScrollPane> BorderPane> Vbox (Центр)> GridPane

ответ

38

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

grid.setHgap(10); //horizontal gap in pixels => that's 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) 
14

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

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

GridPane.setMargin Javadoc:

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

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

Смежные вопросы