hai*_*ind 1 java arrays swing gettext jtextfield
我使用Netbeans创建具有许多JTextField
元素的GUI .我想迭代遍历所有这些来调用setText
,文本将只有1,2,3 ......
private javax.swing.JTextField txt1;
private javax.swing.JTextField txt2;
private javax.swing.JTextField txt3;
private javax.swing.JTextField txt4;
private javax.swing.JTextField txt5;
private javax.swing.JTextField txt6;
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种在循环中执行此操作的方法,而不是setText
手动调用它们中的每一个.
可能是这样的:
public void getInfoJText2(){
Component[] children = jPanel1.getComponents();
for (int i = 0, j = 1; i < children.length; i++) {
if (children[i] instanceof JTextField) {
((JTextField) children[i]).setText(Integer.toString(j++));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么处理这个?
使用JTextFields的数组(或List),然后迭代它.如果您不想摆脱拖放GUI(这是一种创建GUI的糟糕方式,因为您必须完全依赖GUI构建器),您仍然可以将文本字段放在阵列.
初始化文本字段时,创建一个可在getInfoJText2()
方法中访问的数组,然后将引用放入数组中的文本字段,即
JTextField[] fields = new JTextField[6]; // Instance variable in the class
public void initArray() {
fields[0] = txt1;
fields[1] = txt2;
fields[2] = txt3;
// etc.
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在getInfoJText2()方法中使用你的字段-array,顺序将始终相同.