java使用for循环设置jTextFields中的值
String[] words = str.split("\\+");
jTextField43.setText(words[0]);
jTextField44.setText(words[1]);
jTextField45.setText(words[2]);
jTextField46.setText(words[3]);
jTextField47.setText(words[4]);
jTextField48.setText(words[5]);
jTextField49.setText(words[6]);
jTextField50.setText(words[7]);
jTextField51.setText(words[8]);
jTextField52.setText(words[9]);
jTextField53.setText(words[10]);
jTextField54.setText(words[11]);
jTextField55.setText(words[12]);
jTextField56.setText(words[13]);
jTextField57.setText(words[14]);
jTextField58.setText(words[15]);
我要
for(int i=0;i<15;i++)
{
jTextField[i+43].setText(words[i]));
}
我该怎么办
# 1 楼答案
我只是在这里猜测,但看起来所有这些
JTextFields
都是由IDE使用图形拖放编辑器(?)为您生成的如果没有,那么你的问题的答案是,不要用那种方式编写代码
如果你确实使用IDE来创建你的UI,每次你把一个
JTextField
放到你的Swing应用程序上,IDE都会为你编写一些生成JTextField
对象的代码在NetBeansIDE中,它执行以下操作:
在标记为“生成代码”的代码折叠部分的其他地方,会有如下内容:
GUI不够智能,无法知道所有这些
JTextFields
都有某种关联,您希望能够方便地循环它们。如果您自己编写代码,而不是拖放控件,那么就很容易做到:其中35是您需要的JTextFields的数量
或者,您仍然可以像往常一样使用IDE通过拖放创建GUI,然后将对所有IDE生成的控件的引用放入数组中,以便于以后的迭代:
如果您更愿意使用ArrayList或类似的简单容器:
在Netbeans的情况下,IDE违反了所有编程约定,开始在
1
而不是0
处对控件进行编号,所以在将jTextField1
放入jTextFields[0]
等操作时,要小心一个接一个的错误。更好的是,给所有控件起一个有意义的名字我想底线是不要害怕自己编写代码,而不是让IDE为您生成代码,如果方便的话,将对象放入容器也没有坏处
下面是关于GUI控件数组的相关FAQ entry for NetBeans,它解释了您需要手工编写代码
如果您使用的是另一个IDE,请参阅相关文档,查看IDE是否支持创建数组或控件集合的方法,或者您是否需要自己编写代码