我想为我的项目添加许多文本字段,并决定只使用数组,因为所有这22个文本字段都具有相同的属性。
我曾尝试JTextField txtFld[] = new JTextField[5];
。它没有参数错误,但是当我尝试运行我的程序时,它会显示在控制台中
Exception in thread "main" java.lang.NullPointerException
我不想使用
JTextField txtFld[] = new JTextField[]{
new JTextField(10),
...
...
... // repeat the same code about 20 times
};
因为它占用了这么多行而且文本字段无论如何都是相同的类型。我想要做的只是一个长度相同的文本字段数组,只需使用mainPanel(txtFld[0]); ... mainPanel(txtFld[21]);
是否可以在一行代码中创建文本字段数组?
答案 0 :(得分:1)
由于我是SO的新手,我可以回答这个问题,但这是一个重复的问题。我正在写答案:
目前还不清楚FIELDS是你的JTextField aray还是常量。如果它是组件数组本身,请考虑在迭代时使用.length数组字段。这减少了代码维护:
Container c = getContentPane();
JTextField[] fields = new JTextField[22];
for (int i = 0; i < 22; i++) {
fields[i] = new JTextField("Your Value");
//you can add any listener for JTextField here
c.add(fields[i]);
}
注意大写变量用于Java命名约定下的常量。
答案是从here 复制而来的。我无法将此问题标记为重复。