是否有Swing hack来查询或设置窗口的Z顺序?

时间:2009-04-20 09:47:20

标签: java swing

我们正在尝试在退出时保存应用程序的状态并在启动时恢复它。状态的一部分是所有JFrame的相对Z顺序。

不幸的是,Swing似乎没有提供任何学习或设置窗口的Z顺序的方法(甚至相对于同一VM中的其他窗口)。

我们通过在所有窗口上按顺序调用toFront()来处理设置Z顺序。但查询Z顺序仍未解决。 (添加焦点侦听器并不总是有效,例如,当在一组窗口上使用Windows“Cascade”操作时。)

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

没有任何粒度。

正如你所说,你可以调用toFront()和toBack(),你可以要求一个窗口“保持在最前面”,但这就是它。

另一种选择是使用内部框架的框架,并使用setComponentZOrder()(这仅适用于内部组件 - 您必须在容器上调用它。)

我认为其中没有成为Swing优先级的原因之一是对Z顺序的支持与平台有关。 (但是,嘿,什么不是......)

答案 1 :(得分:-1)

您可以使用Container类中的setComponentZOrder(Component c,int layer)和getComponentZOrder(Component c)。 有一个JDC技术提示:http://72.5.124.55/developer/JDCTechTips/2005/tt0118.html