JavaFX 为 GridPane 中的项目设置边距

JavaFX set margins for items in GridPane

我正在尝试获得更好的布局,为此我想 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 和它旁边的项目之间有一些间距。

我对此很陌生,所以如果有任何不清楚的地方,请告诉我!乐于助人!

使用:

  • 对于页边距,使用 GridPane.setMargin(node, insets) 而不是 BorderPane.setMargin(node, insets)
  • 对于列之间的水平 space 使用 centerGridPane.setHgap(value)
  • 对于垂直线之间的 space 使用 centerGridPane.setVgap(value)