【问题标题】:Check whether a JPanel contains a JButton检查 JPanel 是否包含 JButton
【发布时间】:2011-11-10 12:27:43
【问题描述】:

我向JPanel 添加了一个按钮。如果JPanel 包含按钮,我想删除按钮。有没有办法检查JPanel是否包含按钮?

【问题讨论】:

  • 循环访问面板的孩子有什么问题?

标签: java swing jpanel jbutton jcomponent


【解决方案1】:

如果您有对JButton 的引用,请致电getParent()。如果父级是null,则该按钮不在面板(或任何容器)中。

或者,按照@kleopatra 的建议,在JPanel 实例上调用getComponents() 并迭代数组以查找任何instanceof JButton

【讨论】:

    【解决方案2】:

    检查有必要吗?如果没有,那么只需删除 JButton 而不检查。如果JPanel 不包含它,则不会发生任何事情。

    【讨论】:

    • 问题是:'如何检查 JPanel 是否包含 JButton?'。搜索该问题的人将被推荐到此答案。这个答案是针对提问者特定目的的好建议,但不是对一般问题的充分回答。
    • @Maarten:你是对的。我回答了问题描述,而不是标题,但人们通常对标题感兴趣。我认为Andrew's Answer bellow 很适合。
    【解决方案3】:

    如果您有对按钮的引用:

    List<Component> componentList = Arrays.asList(panel.getComponents());
    if (!componentList.contains(button)) {
      panel.add(button);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-04
      • 2014-10-08
      • 2020-01-09
      • 2013-08-04
      • 2020-01-17
      • 2017-08-04
      • 1970-01-01
      • 2011-07-15
      • 2018-02-05
      相关资源
      最近更新 更多