我是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 ......这样我就可以在退出循环后调用它们。有没有办法做到这一点?提前谢谢..
答案 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
// ...
}