为循环中的每个创建具有唯一名称的textField

时间:2016-02-08 12:29:29

标签: java loops for-loop

我是Java的初级程序员。我想在for循环中创建textField但我也希望它有一个唯一的名称(用于调用循环后)。对于前者我有这个循环;

for (int i =0;i<x;i++)

        {


            Composite composite_10 = new Composite(composite_20, SWT.BORDER);
            composite_10.setBackground(SWTResourceManager.getColor(230, 230, 250));
            composite_10.setBounds(x1, y1, 542, 76);

            txtBaseSeri = new Text(composite_10, SWT.BORDER);
            txtBaseSeri.setMessage("Base Seri");
            txtBaseSeri.setToolTipText("");
            txtBaseSeri.setBounds(x2, y2, 95, 21);
            txtBaseSeri.setText("41");
            txtBaseSeri.setTextLimit(7);
}

在这里,我希望第二个Textfield的名称类似于txtBaseSeri1,然后是txtBaseSeri2 ......这样我就可以在退出循环后调用它们。有没有办法做到这一点?提前谢谢..

1 个答案:

答案 0 :(得分:2)

  

我希望第二个Textfield的名称类似于txtBaseSeri1,然后是txtBaseSeri2 - 有没有办法做到这一点?

没有。请改用ArrayList并将文本字段添加到该列表中,例如:

List<Text> txtBaseSeri = new ArrayList<>();
for (int i = 0; i < x; i++) {
    // ...

    Text txt = new Text(composite_10, SWT.BORDER);
    // ...

    txtBaseSeri.add(txt);
}

之后,您可以通过索引访问每个Text对象,例如

Text first = txtBaseSeri.get(0);
Text second = txtBaseSeri.get(1);
// ...

或者你可以循环浏览它们,比如

for (Text txt : txtBaseSeri) {
    // in each loop iteration, txt will be set to the next element
    // ...
}