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的示例 – 提示建议是在您的帧类中有列表:
List fieldsToClear = new LinkedList();
并在初始化单个文本字段时,将它们添加到此列表中:
someField = new JTextField("Edit me");
{ fieldsToClear.add(someField); }
当用户点击清除按钮时,只需:
for (JTextField tf : fieldsToClear) {
tf.setText("");
}