Java 如何通过修改Netbeans中的父项来影响所有子项?

Java 如何通过修改Netbeans中的父项来影响所有子项?,java,swing,netbeans,parent-child,Java,Swing,Netbeans,Parent Child,我有一个jPanelpanelA,其中包含jButtons、jlabel和任何其他东西。 我的问题是,如果我可以将panelA中的所有组件都设置为子级,那么我如何才能生成这样的方法 panelA.setEnable(false); 这使得所有的孩子都残疾了,而不必列出他们中的每一个人 在java.Swing-likepanelA.setVisible(false)中是否有任何方法可以将其推广到其他方法?没有预定义的函数,但您可以创建如下函数: void setPanelEnabled(JPan

我有一个jPanel
panelA
,其中包含jButtons、jlabel和任何其他东西。 我的问题是,如果我可以将
panelA
中的所有组件都设置为子级,那么我如何才能生成这样的方法

panelA.setEnable(false);
这使得所有的孩子都残疾了,而不必列出他们中的每一个人


在java.Swing-like
panelA.setVisible(false)中是否有任何方法可以将其推广到其他方法

没有预定义的函数,但您可以创建如下函数:

void setPanelEnabled(JPanel panel, Boolean isEnabled) {
panel.setEnabled(isEnabled);
Component[] components = panel.getComponents();
for (Component component : components) {
    if (component instanceof JPanel) {
        setPanelEnabled((JPanel) component, isEnabled);
    }
    component.setEnabled(isEnabled);
  }
}

JPanel
上调用
setVisible(false)
会隐藏面板及其所有内容。你试过了吗?关于
setEnabled()
,如果不遍历
JPanel
@Abra中包含的所有组件,就无法完成此操作。是的,我已经尝试过了。但我在这里的主要目的是推广到更多的方法。即使您编写了自己的容器类来扩展
java.awt.Component
,我认为您仍然需要迭代该容器中包含的所有组件。@Amoun我已将您的答案设置为已接受。这真的很有帮助,现在我正在我的代码中实现它。我发现这是一个非常好的主意@Nassif很高兴听到这个消息