我有什么方法可以隐藏课程中的所有JButtons
,而无需单独设置myButton.setVisible(false);
?
我正在寻找可以使用1行代码隐藏所有内容的内容,而无需不断更新JButton
列表。
如果有人知道如何使这成为可能会非常感激。
答案 0 :(得分:2)
从根组件开始,使用recursive
函数迭代所有底层组件,以隐藏所有JButton
。
示例代码,用于隐藏JButton
或JFrame
或两者中添加的所有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);
}
}
}
}