5 java swing loops jpanel jtextfield
为了在用户单击"清除按钮"时初始化所有JTextfFields JPanel,我需要遍历JPanel(而不是将所有单个字段设置为"").
我怎样才能使用for-each循环来迭代JPanel搜索JTextFields?
aka*_*okd 16
for (Component c : pane.getComponents()) {
if (c instanceof JTextField) {
((JTextField)c).setText("");
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果你有更深层嵌套的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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:Tom Hawtin的示例- 提示建议是在您的帧类中有列表:
List<JTextField> fieldsToClear = new LinkedList<JTextField>();
Run Code Online (Sandbox Code Playgroud)
并在初始化单个文本字段时,将它们添加到此列表中:
someField = new JTextField("Edit me");
{ fieldsToClear.add(someField); }
Run Code Online (Sandbox Code Playgroud)
当用户点击清除按钮时,只需:
for (JTextField tf : fieldsToClear) {
tf.setText("");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14101 次 |
| 最近记录: |