有没有办法在java中管理JDialog窗口的窗口z顺序?
我希望能够将每个窗口分配给一个层,以便较低层上的窗口永远不会超过并遮挡较高层上的窗口。即使他们有焦点。类似于 JDialog 窗口的组件存在的 Z 顺序功能。
该解决方案不需要适用于所有操作系统。linux 特定的解决方案是可以接受的。
对于窗口的 Z 顺序,我能够找到的唯一管理是您可以使用 toFront() 将它们发送到顺序的顶部,或者您可以使用 setAlwaysOnTop() 将它们设置为始终在顶部。这是非常基本的 z 排序,似乎 Window 类没有像容器内的组件那样为您提供细粒度的排序。
由于 Java 现在支持透明和成形窗口,您可能可以使用不可见窗口来伪造它,并使“真实”窗口只是组件,或者可能是JInternalFrame
s。