如何在单击JButton时清除JFrame中的所有组件值

时间:2016-02-22 13:03:43

标签: java swing jframe

我需要清除JFrame中所有组件的值。我尝试了以下逻辑,但值仍然出现在框中。

for(Component c:frame.getComponents()){
    if(c instanceof JTextField || c instanceof JTextArea){
        ((JTextComponent) c).updateUI();
    }else if(c instanceof JRadioButton){
        ((JRadioButton) c).setSelected(false);
    }else if(c instanceof JDateChooser){
        ((JDateChooser) c).setDate(null);
    }
}

1 个答案:

答案 0 :(得分:1)

你需要recursevly

private void clearAll(Container aContainer) {
    for(Component c:aContainer.getComponents()) {
        if(c instanceof JTextField || c instanceof JTextArea){
            ((JTextComponent) c).setText("");
        }else if(c instanceof JRadioButton){
            ((JRadioButton) c).setSelected(false);
        }else if(c instanceof JDateChooser){
             ((JDateChooser) c).setDate(null);
        }else if (c instanceof Container) {
             clearAll((Container) c);
        }
    }
}

你需要打电话给它:

clearAll(frame.getContentPane());