2009-04-20 71 views
6

我們試圖在退出時保存應用程序的狀態並在啓動時將其恢復。部分狀態是所有JFrame的相對Z順序。是否有Swing hack查詢或設置窗口的Z順序?

不幸的是,Swing似乎沒有提供任何方法來學習或設置窗口的Z順序(甚至相對於同一個VM中的其他窗口)。

我們通過在所有窗口上按順序調用toFront()來設置Z順序。但是查詢Z-order仍然沒有解決。 (添加焦點偵聽器並不總是有效,例如,當在一組窗口上使用Windows'「Cascade」動作時)。

任何想法?

+0

重複http://stackoverflow.com/questions/624885/how-to-get-the-z-order-of-jinternalframes-in-a-jdesktoppane? – dfa 2009-04-20 10:13:01

+1

不,這不是說JInternalFrames – sereda 2009-04-20 11:05:43

回答

5

沒有任何粒度。如你所說,你可以調用toFront()和toBack(),並且你可以要求一個窗口「保持在最前面」,但這就是它。

另一種選擇是使用內部框架的框架,並使用setComponentZOrder()(儘管這隻適用於內部組件 - 您必須在容器上調用它)。

我相信它不是Swing優先考慮的原因之一是對Z排序的支持是非常依賴平臺的。 (但是,嘿,什麼不是...)