gpt4 book ai didi

java - 使用 for 循环在 jTextFields 中设置值

转载 作者:行者123 更新时间:2023-12-02 05:08:45 25 4
gpt4 key购买 nike

        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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com