JavaLearner
JavaLearner

Reputation: 51

Check whether a JPanel contains a JButton

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

Answers (3)

ceklock
ceklock

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

Mohayemin
Mohayemin

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

Andrew Thompson
Andrew Thompson

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

Related Questions