检查JPanel是否包含JButton

时间:2011-09-05 10:13:53

标签: java swing jpanel jbutton jcomponent

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

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:7)

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

答案 2 :(得分:1)

如果您有对按钮的引用:

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