2011-09-05 29 views

回答

8

如果您参考了JButton,请致电getParent()。如果父母是null,该按钮不在面板(或任何容器)中。

或者,像@kleopatra建议的那样,在JPanel实例上调用getComponents()并迭代该数组,以查找任何为instanceof JButton的东西。

7

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

+0

问题是:'我如何检查JPanel是否包含JButton?'。那些搜索这个问题的人会被引用到这个答案中。这个答案对于提问者的特殊目的是很好的建议,但对于一般问题来说不是一个适当的答案。 – Maarten

+0

@Maarten:你说得对。我回答了问题描述,而不是标题,但人们通常对标题感兴趣。我认为[安德鲁的答案](http://stackoverflow.com/a/7318993/887149)波纹管是很好的。 – Mohayemin

0

如果你有到按钮的引用:

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