如何获取JComponent的顶级容器?

时间:2010-04-18 02:55:24

标签: java swing

有没有办法获得组件的顶级容器?例如,我有一个JToolbar,我想知道该JToolbar的顶层容器是我的JFrame,或者是它自己的窗口,JDialog。

2 个答案:

答案 0 :(得分:13)

SwingUtilities.windowForComponent(...);

答案 1 :(得分:6)

如果组件已添加到层次结构中,则可以通过递归调用getParent来查找顶级容器:

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

if ( c instanceof JFrame )
{
  //...
}