Java-如何为TextField创建循环?

时间:2019-06-07 16:01:29

标签: java javafx

基本上,我想做一个循环,将每个TextField的名称更改为存储在文件夹中的名称。我完全了解如何为int值创建循环,但是完全不知道如何使它影响方法(如下面的示例所示)。有什么想法可以解决问题吗?

检查代码,我相信您会理解我的意思

@FXML
private TextField t1;

@FXML
private TextField t2;

// etc...

@FXML
void music(ActionEvent event) {

    if (event.getSource() == dmusic) {
        File folder = new File("C:\\eclipse\\MP2");
        File[] list = folder.listFiles();

        for (int i = 0; i < list.length; i++) {

            System.out.println(list[i].getName());

            // Here i would like to update TextField name for every "t" method like I did below, but without writing it all the time.

        }

        //      t1.setText(list[0].getName());  // can't make infinite "t"'s and would like to make it in a loop
        //      t2.setText(list[1].getName());
        //      t3.setText(list[2].getName());
        //      t4.setText(list[3].getName());
        //      t5.setText(list[4].getName());
        //      t6.setText(list[5].getName());
        // ...
    }
}

1 个答案:

答案 0 :(得分:1)

尝试使用数组列表

Arraylist<TextField> fields = new ArrayList<>();
<add TextFields to arraylist>

然后使用

for(TextField field : fields) {
    field.setText("");
}

for(int i=0; i< fields.size(); i++){
    fields.get(i).setText("");
}

访问您的单个文本字段。