如何遍历javafx中的每个文本字段?

时间:2018-10-28 04:34:47

标签: loops javafx textfield

我有一个包含40个文本字段的程序。我想知道如何在每个循环和setText上循环。每个textFields已经具有不同的fxid。请帮助!我想简洁地编写代码。

1 个答案:

答案 0 :(得分:1)

您需要一个List来跟踪每个TextField。您的问题不包含任何代码,因此很难根据您的情况确定最简单的方法,但是有两种选择。

  1. 相同的布局容器::如果所有TextField控件都包含在同一布局容器中,例如VBoxFlowPane,则可以使用该容器的子代列表:vbox.getChildren()
  2. 创建自己的List:如果所有fx:id都有TextFields,则将它们添加到List:列表中。添加(文本字段)

现在您有了列表,只需使用迭代器或简单的for循环对其进行迭代:

集装箱儿童:

for (Node node : root.getChildren()) {
    // If you're certain all the children ARE TextFields, cast the node now
    ((TextField) node).setText("Yay for text!");
}

您自己的列表:

    // Create a List to track all the TextFields
    List<TextField> textFieldList = new ArrayList<>();

    // Add some TextFields to the list
    for (int i = 0; i < 20; i++) {
        textFieldList.add(new TextField());
    }

    // Now iterate over the list of TextFields and set their text
    for (TextField textField :
            textFieldList) {
        textField.setText("Yay for text again!");
    }