努力实现:
Text Field 1
和Text Field 3
应占用所有可用空间Button 1
和Button 2
应具有相同的宽度问题:
Text Field 1
和Text Field 3
并未占用所有可用空间(虽然Label
完全显示后它们正在增长)
以下是截图:
// Removed imports for brevity
public class GridPaneTest extends Application
{
@Override
public void start(Stage primaryStage)
{
primaryStage.setTitle("GridPane Test");
GridPane gridPane = new GridPane();
// gridPane.setGridLinesVisible(true);
gridPane.setHgap(5);
gridPane.setVgap(5);
gridPane.setPadding(new Insets(5));
TextField tf1 = new TextField("Text Field 1");
GridPane.setHgrow(tf1, Priority.ALWAYS);
gridPane.add(tf1, 0, 0);
TextField tf2 = new TextField("Text Field 2");
GridPane.setHgrow(tf2, Priority.NEVER);
gridPane.add(tf2, 1, 0);
Button button1 = new Button("Button 1");
button1.setMaxWidth(140);
GridPane.setHgrow(button1, Priority.NEVER);
GridPane.setHalignment(button1, HPos.RIGHT);
gridPane.add(button1, 2, 0);
TextField tf3 = new TextField("Text Field 3");
GridPane.setHgrow(tf3, Priority.ALWAYS);
gridPane.add(tf3, 0, 1, 2, 1);
Button button2 = new Button("Button 2 Button 2");
button2.setMaxWidth(140);
GridPane.setHgrow(button2, Priority.NEVER);
GridPane.setHalignment(button2, HPos.RIGHT);
gridPane.add(button2, 2, 1);
Label label1 = new Label(
"Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1 Label 1");
GridPane.setHgrow(label1, Priority.ALWAYS);
gridPane.add(label1, 0, 2, 3, 1);
primaryStage.setScene(new Scene(gridPane));
primaryStage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
答案 0 :(得分:0)
如果应用程序需要显式控制行或列的大小,可以通过添加RowConstraints和ColumnConstraints对象来指定这些指标
gridPane.getColumnConstraints()
.addAll(new ColumnConstraints(), new ColumnConstraints(),
new ColumnConstraints(140) /* Control the third column size */);
屏幕截图: