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]));
}
我该怎么办?
答案 0 :(得分:2)
我只是在这里猜测,但看起来好像所有这些JTextFields
都是由IDE使用一些图形拖动删除编辑器(?)生成的}
如果没有,那么您的问题的答案是,不要以这样的方式编写代码!
如果您 使用IDE来创建UI,那么每次将JTextField
放到Swing应用程序上时,IDE都会为您编写一些生成{{1}的代码对象。
在NetBeans IDE中,它执行以下操作:
JTextField
以及代码折叠部分中的其他位置标记为&#34;生成代码&#34;那里会是这样的:
// Variables declaration - do not modify
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
//etc...
// End of variables declaration
GUI并不足够聪明,知道所有jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField1.setText("jTextField1");
jTextField2.setText("jTextField2");
// plus some layout code that positions your controls...
都以某种方式相关,您希望能够方便地遍历它们。如果您自己编写代码,而不是拖放控件,它就像以下一样简单:
JTextFields
其中35是你需要的JTextField数量。
或者,你仍然可以使用你的IDE来创建你的GUI,你可以像以前那样拖放它,然后将所有这些IDE生成的控件引用到数组中以便于迭代后:
private JTextField[] jTextFields = new JTextField[35];
// initialise and set properties for all those JTextFields...
jTextFields[0] = new JTextField();
/// etc ...
如果您更愿意使用同样简单的ArrayList或类似容器:
private JTextField[] jTextFields = new JTextField[35];
jTextFields[0] = jTextField1;
jTextFields[1] = jTextField2;
// etc...
对于Netbeans,IDE违反了所有编程约定,并开始在private List<JTextField> jTextFields = new ArrayList<>();
jTextFields.add( jTextField1 );
jTextFields.add( jTextField2 );
// etc...
而不是1
编号控件,因此当您放置时,请注意一个错误的错误0
进入jTextField1
,依此类推。更好的是,为所有控件提供有意义的名称!
我想底线是不要害怕自己编写代码,而不是让你的IDE为你生成代码,如果是这样,那么将对象放入容器也没有坏处。对你方便。
这里有关于GUI控件数组的相关FAQ entry for NetBeans,它解释了您需要手动编写代码。
如果您正在使用其他IDE,请参阅相关文档,了解IDE是否支持创建数组或控件集合的方式,或者您是否必须自己编写代码。