JavaFX 动态添加新的文本字段

Posted

技术标签:

【中文标题】JavaFX 动态添加新的文本字段【英文标题】:JavaFX dynamically adding new text fields 【发布时间】:2017-08-31 08:27:08 【问题描述】:

我正在编写一个程序,允许用户在需要向表单添加更多数据的情况下添加新的空文本字段。我无法理解如何为添加到我的 GridPane 的每个新字段设置坐标。例如,

            btnClick.setOnAction(new EventHandler<ActionEvent>()
    public void handle(ActionEvent e)

    TextField text = new TextField();
    primaryPane.add(text, 5 , 6);
);

只会在位置 (5,6) 添加一个新的文本字段。如何更改代码以允许用户添加任意​​数量的字段,每个字段一个接一个地显示。我知道我可以对确定数量的新字段使用循环,但是用户应该能够创建任何数字。提前感谢您的帮助。

内森

【问题讨论】:

存储最后添加的文本字段坐标并在每次点击时修改它们。 【参考方案1】:

这段代码可以帮助你。

public class AddTextField extends Application 
int i = 1;

@Override
public void start(Stage primaryStage) 
    GridPane root = new GridPane();
    root.setHgap(10);
    root.setVgap(10);
    TextField textField[] = new TextField[15];
    Button btn = new Button("Add TextField");
    root.add(btn, 0, 0);
    btn.setOnAction(e -> 
        textField[i] = new TextField();
        root.add(textField[i], 5, i);
        i = i + 1;

    );

    final Scene scene = new Scene(root, 500, 400);
    primaryStage.setScene(scene);
    primaryStage.show();



public static void main(String[] args) 
    launch(args);

【讨论】:

以上是关于JavaFX 动态添加新的文本字段的主要内容,如果未能解决你的问题,请参考以下文章

javafx动态地在新选项卡中打开一个新的fxml文件

JavaFX:如何从 GridPane 中动态创建的文本字段的值计算平均值?

在 ASP.Net Web 表单/MVC 中动态加载和添加字段

建议使用自动布局约束动态添加标签和文本字段的逻辑

JavaFX 动态添加按钮

在 JavaFX 中将元素动态添加到固定大小的 GridPane