gpt4 book ai didi

java - 循环遍历 JPanel

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:04 25 4
gpt4 key购买 nike

为了在用户单击“清除按钮”时初始化 JPanel 上的所有 JTextfField,我需要遍历 JPanel (而不是将所有单个字段设置为“”)。

如何使用 for-each 循环遍历 JPanel 以搜索 JTextField

最佳答案

for (Component c : pane.getComponents()) {
if (c instanceof JTextField) {
((JTextField)c).setText("");
}
}

但是如果 JTextFields 的嵌套更深,则可以使用以下递归形式:

void clearTextFields(Container container) {
for (Component c : container.getComponents()) {
if (c instanceof JTextField) {
((JTextField)c).setText("");
} else
if (c instanceof Container) {
clearTextFields((Container)c);
}
}
}

编辑:Tom Hawtin - tackline 建议的示例是在您的框架类中包含列表:

List<JTextField> fieldsToClear = new LinkedList<JTextField>();

当您初始化各个文本字段时,将它们添加到此列表中:

someField = new JTextField("Edit me");
{ fieldsToClear.add(someField); }

当用户点击清除按钮时,只需:

for (JTextField tf : fieldsToClear) {
tf.setText("");
}

关于java - 循环遍历 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037139/

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