Как получить контейнер верхнего уровня JComponent? - PullRequest
7 голосов
/ 18 апреля 2010

Есть ли способ получить контейнер верхнего уровня компонента? Например, у меня есть JToolbar, и я хочу в один момент узнать, что контейнером верхнего уровня этого JToolbar является мой JFrame или его собственное окно, JDialog.

Ответы [ 2 ]

13 голосов
/ 18 апреля 2010
SwingUtilities.windowForComponent(...);
6 голосов
/ 18 апреля 2010

Если компонент был добавлен в иерархию, вы можете искать контейнер верхнего уровня, рекурсивно вызывая getParent:

Container c = toolbar;
while ( c.getParent() != null )
{
  c = c.getParent();
}

if ( c instanceof JFrame )
{
  //...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...