Проверьте, содержит ли JPanel JButton - PullRequest
4 голосов
/ 05 сентября 2011

Я добавил кнопку к JPanel. Я хочу удалить кнопку, если JPanel содержит кнопку. Есть ли способ проверить, содержит ли JPanel кнопку?

Ответы [ 3 ]

8 голосов
/ 06 сентября 2011

Если у вас есть ссылка на JButton, вызовите getParent () .Если родительский элемент null, кнопка не находится на панели (или в каком-либо контейнере).

В качестве альтернативы сделайте, как предложено @kleopatra, и вызовите getComponents () в JPanelэкземпляр и итерацию массива в поисках всего, что является instanceof JButton.

7 голосов
/ 12 сентября 2011

Нужна ли проверка?Если нет, то просто удалите JButton без проверки.Ничего не произойдет, если оно не содержится в JPanel.

1 голос
/ 27 января 2017

Если у вас есть ссылка на кнопку:

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