我有一个包含40个文本字段的程序。我想知道如何在每个循环和setText上循环。每个textFields已经具有不同的fxid。请帮助!我想简洁地编写代码。
答案 0 :(得分:1)
您需要一个List
来跟踪每个TextField
。您的问题不包含任何代码,因此很难根据您的情况确定最简单的方法,但是有两种选择。
TextField
控件都包含在同一布局容器中,例如VBox
或FlowPane
,则可以使用该容器的子代列表:vbox.getChildren()
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!");
}