如何在Javafx中添加文本框而不移动按钮

时间:2019-06-21 00:05:58

标签: java javafx

我试图创建一个javafx程序来显示一些文本框和按钮,但是每次添加文本框时,最终都会移动按钮。

    GridPane pane = new GridPane();
    pane.setAlignment(Pos.CENTER);
    pane.setPadding(new Insets(11.5, 12.5, 13.5, 14.5));
    pane.setHgap(6);
    pane.setVgap(7);

    pane.add(new Label("Text1:"), 0, 3);
    pane.add(new TextField(), 1, 3);
    pane.add(new TextField(), 1, 3, 1, 1);
    pane.add(new Label("Text2:"), 2, 3);
    pane.add(new TextField(), 3, 3);
    pane.add(new Label("Text3:"), 4, 3);
    pane.add(new TextField(), 5, 3);

    Button bt1 = new Button("Button");
    bt1.setMinSize(70, 0);
    pane.add(bt1, 1, 4);
    Button bt2 = new Button("Button");
    bt2.setMinSize(70, 0);
    pane.add(bt2, 2, 4);
    Button bt3 = new Button("Button");
    bt3.setMinSize(70, 0);
    pane.add(bt3, 3, 4);

我希望文本框离标签更近,而按钮之间的间隔较小。

1 个答案:

答案 0 :(得分:2)

GridPane对齐同一行/列中的节点,并且(假设未使用行/列跨度,除了1之外)确保位于不同行/列中的节点不与节点范围垂直重叠/水平地。

您试图将Label / TextFieldButton分别对齐,尽管这行不通,至少除非您使事情变得不必要地复杂,否则这至少是行得通的。

建议不要使用包含2个GridPane的{​​{1}},而不要使用VBox

HBox