Reputation: 51
I have added a button to a JPanel
. I want to remove the button if the JPanel
contains the button. Is there any way to check whether the JPanel
contains the button?
Upvotes: 5
Views: 8423
Reputation: 6350
If you have a reference to the button:
List<Component> componentList = Arrays.asList(panel.getComponents());
if (!componentList.contains(button)) {
panel.add(button);
}
Upvotes: 2
Reputation: 3870
Is checking necessary? If not, then just remove the JButton
without checking. Nothing will happen if it is not contained by the JPanel
.
Upvotes: 8
Reputation: 168825
If you have a reference to the JButton
, call getParent(). If the parent is null
, the button is not in the panel (or any container).
Alternately, do as @kleopatra suggested and call getComponents() on the JPanel
instance and iterate the array looking for anything that is an instanceof JButton
.
Upvotes: 10