gpt4 book ai didi

java - 按顺序获取所有的JTextField

转载 作者:行者123 更新时间:2023-11-29 07:06:58 25 4
gpt4 key购买 nike

我使用 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;

我正在寻找一种在循环中执行此操作的方法,而不是为它们中的每一个手动调用 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++));
}
}
}

我该如何处理?

最佳答案

改为使用 JTextFields 的数组(或列表)并对其进行迭代。如果您不想摆脱拖放式 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.
}

然后您可以在 getInfoJText2() 方法中使用您的字段数组,顺序将始终相同。

关于java - 按顺序获取所有的JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651117/

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