【问题标题】:How to affect all children by just modifying the Parent in Netbeans?如何仅通过修改 Netbeans 中的父级来影响所有子级?
【发布时间】:2020-07-20 17:29:04
【问题描述】:

我有一个 jPanel panelA,其中包含 jButton、jLabels 和任何其他内容。 我的问题是,如果我可以将 panelA 中的所有这些组件设置为子项,我该如何制作类似的方法

panelA.setEnable(false);

这也使所有儿童都残疾,而不必列出每个人?

有什么方法可以将其推广到 java.Swing 中的其他方法,例如 panelA.setVisible(false);

【问题讨论】:

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

标签: java swing netbeans parent-child


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2012-06-15
    • 2021-07-05
    • 1970-01-01
    相关资源
    最近更新 更多