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