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

标签 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);
    }
}

最佳答案

你需要递归地进行

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());

关于java - 如何在单击 JButton 时清除 JFrame 中的所有组件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554467/

相关文章:

java - 将 JTable 放入 JTree 中

java - Java 游戏开发应使用哪种类型的覆盖?

java - 无法更改 JFrame ContentPane 的背景颜色

java - JButton 和 ActionEvent 的问题

java - 传递数组作为参数并进行计算

java - 高级和低级 Java API 之间有什么区别?

java - 在没有POJO的情况下用Gson解析Json?

java - JOptionPane 运行 FileChooser

java - 奇怪的图形错误 : a copy of component A is painted on component B. 帮助! ( java )

java - 使用opencv对网球场进行3D估算