Java - 隐藏所有JButton

时间:2014-03-21 23:09:38

标签: java

我有什么方法可以隐藏课程中的所有JButtons,而无需单独设置myButton.setVisible(false);

我正在寻找可以使用1行代码隐藏所有内容的内容,而无需不断更新JButton列表。

如果有人知道如何使这成为可能会非常感激。

1 个答案:

答案 0 :(得分:2)

从根组件开始,使用recursive函数迭代所有底层组件,以隐藏所有JButton

示例代码,用于隐藏JButtonJFrame或两者中添加的所有JPanel

注意:也为其他组件扩展递归函数。

只需调用hide()方法即可处理此存根。

public  void hide(Component parent) {
    if (parent instanceof JFrame) {
        JFrame frame = (JFrame) parent;
        for (int i = 0; i < frame.getContentPane().getComponentCount(); i++) {
            Component comp = frame.getContentPane().getComponent(i);

            if (comp instanceof JButton) {
                comp.setVisible(false);
            } else {
                hide(comp);
            }
        }
    } else if (parent instanceof JPanel) {
        JPanel panel = (JPanel) parent;
        for (int i = 0; i < panel.getComponentCount(); i++) {
            Component comp = panel.getComponent(i);
            if (comp instanceof JButton) {
                comp.setVisible(false);
            } else {
                hide(comp);
            }
        }
    }
}