Java アプリケーションに複数のフレームがあります。それらのいくつかは、常に一番上に設定されています。ただし、ユーザーが別のプログラム (Web ブラウザーとしましょう) を開くと、常に上部にあるフレームを背景に移動して、他のアプリケーションが画面に完全に表示されるようにします。
2 に答える
独自のウィンドウマネージャーを作成します。
WindowListener
、、、WindowStateListener
およびを実装するカスタムウィンドウマネージャーを作成しますWindowFocusListener
。すべての新しいフレームをこのマネージャーに登録し、それを使用して、ユーザーがフレームを操作するたびに常に最上位のフレームを前面に戻します。
アプリケーションがかなりカスタムのフレーム管理コードを使用しているようです。私の推測では、アプリケーションの開発を続けると、このウィンドウマネージャーはユーザーインターフェイスを管理するためのより多くの機能を引き継ぐでしょう。これにより、問題を解決するための設計が提供されるだけでなく、この動作に対する変更または拡張の基盤も提供されます。
ただし、Javaはオペレーティングシステムが他のアプリケーションで行うことを制御できないことに注意してください。すべてのオペレーティングシステムで、フレームを他のアプリケーションよりも確実に前面に表示することはできません。必要な動作を提供するために、このウィンドウマネージャーを作成するためにサポートするオペレーティングシステムを操作する必要があります。
私の Java アプリケーションには複数のフレームがあります。それらのいくつかは常に一番上に設定されています。
そうしないで、代わりにCardLayoutを使用してください。実際に end_user アクションが必要な場合は、次に使用します
モーダルJDialog (または
ModalityType
withAplicationModal
)次の使用のためにJDialog ( getContentPane.removeAll ()) を再使用します。
ただし、ユーザーが別のプログラム (Web ブラウザーとしましょう) を開くと、常に上部のフレームを背景に移動して、他のアプリケーションが画面に完全に表示されるようにします。
これはend_userにとって非常に煩わしい場合があります。代わりにフルスクリーンを使用してください
最も重要な残りの部分がコメントにあることに注意してください@Andrew Thompson