【发布时间】:2011-11-10 12:27:43
【问题描述】:
我向JPanel 添加了一个按钮。如果JPanel 包含按钮,我想删除按钮。有没有办法检查JPanel是否包含按钮?
【问题讨论】:
-
循环访问面板的孩子有什么问题?
标签: java swing jpanel jbutton jcomponent
我向JPanel 添加了一个按钮。如果JPanel 包含按钮,我想删除按钮。有没有办法检查JPanel是否包含按钮?
【问题讨论】:
标签: java swing jpanel jbutton jcomponent
如果您有对JButton 的引用,请致电getParent()。如果父级是null,则该按钮不在面板(或任何容器)中。
或者,按照@kleopatra 的建议,在JPanel 实例上调用getComponents() 并迭代数组以查找任何instanceof JButton。
【讨论】:
检查有必要吗?如果没有,那么只需删除 JButton 而不检查。如果JPanel 不包含它,则不会发生任何事情。
【讨论】:
如果您有对按钮的引用:
List<Component> componentList = Arrays.asList(panel.getComponents());
if (!componentList.contains(button)) {
panel.add(button);
}
【讨论】: