Java内でJDialogウィンドウのウィンドウのz順序を管理する方法はありますか?
各ウィンドウをレイヤーに割り当てて、下位レイヤーのウィンドウが上に移動したり、上位レイヤーのウィンドウを覆い隠したりしないようにしたいと思います。彼らが焦点を合わせているときでさえ。コンポーネントに存在するZオーダー機能に似ていますが、JDialogウィンドウ用です。
このソリューションは、すべてのOSで機能する必要はありません。Linux固有のソリューションが受け入れられます。
私がウィンドウのZオーダーについて見つけた唯一の管理は、toFront()を使用してウィンドウをオーダーの最上位に送信できるか、setAlwaysOnTop()を使用して常に最上位に設定できることです。これは非常に基本的なzの順序付けであり、Windowクラスでは、コンテナ内のコンポーネントほど細かい順序付けができないようです。
Java は透明な形のウィンドウをサポートするようになったので、目に見えないウィンドウを使用してこれを偽造し、「実際の」ウィンドウを単なるコンポーネントまたはおそらくJInternalFrame
s にすることができる場合があります。