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

ser*_*eda 6 java swing

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

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

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

有任何想法吗?

Nei*_*fey 5

没有任何粒度.

正如你所说,你可以调用toFront()和toBack(),你可以要求一个窗口"保持在最顶层",但这就是它.

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

我认为它不是Swing优先考虑的原因之一是对Z顺序的支持与平台有关.(但是,嘿,什么不是......)