JavaFX устанавливает поля для элементов в GridPane - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь получить лучшую компоновку, и для этого я хотел бы setMargin для своих элементов внутри GridPane. Вот что я пробовал (только для первого idLabel, idTextField, nameLabel, nameTextField для тестирования):

private Pane createCenterPane() {   
    centerGridPane = new GridPane();
    
    centerGridPane.add(createIdLabel(), 0, 0);
    centerGridPane.add(createIdTextField(), 2, 0);
    BorderPane.setMargin(idLabel, new Insets(10, 10, 10, 10));
    BorderPane.setMargin(idTextField, new Insets(10, 10, 10, 10));
    
    centerGridPane.add(createNameLabel(), 0, 1);
    centerGridPane.add(createNameTextField(), 2, 1);
    BorderPane.setMargin(nameLabel, new Insets(10, 10, 10, 10));
    BorderPane.setMargin(nameTextField, new Insets(10, 10, 10, 10));
    
    centerGridPane.add(createDescriptionLabel(), 0, 2);
    centerGridPane.add(createDescriptionTextArea(), 2, 2);
    
    centerGridPane.add(createSeverityLabel(), 0, 3);
    centerGridPane.add(createSeverityComboBox(), 2, 3);
    
    centerGridPane.add(createTypeLabel(), 0, 4);
    centerGridPane.add(createTypeComboBox(), 2, 4);
    
    centerGridPane.add(createDependencyLabel(), 0, 5);
    centerGridPane.add(createDependencyListView(), 2, 5);
    
    return centerGridPane;
}

createIdLabel (остальные createsX работают аналогично) :

private Label createIdLabel() {
    return idLabel = new Label("Id:");
}

Но setMargin ничего не делает:

введите описание изображения здесь

Я бы хотел иметь некоторый интервал между «рядами», а также между label и элементом рядом с ним.

Я новичок в этом, так что если что-то неясно просто дайте мне знать! Рад за любую помощь!

1 Ответ

0 голосов
/ 11 июля 2020

Используйте:

  • Для полей используйте GridPane.setMargin(node, insets) вместо BorderPane.setMargin(node, insets)
  • Для горизонтального расстояния между столбцами используйте centerGridPane.setHgap(value)
  • Для вертикального расстояния между линии используют centerGridPane.setVgap(value)
...