JDesktopPane内にあるアクティブな(フォーカスを持つ)フレーム(JInternalFrame)を取得するにはどうすればよいですか?MDIメモ帳に必要です(誰もがそれを使用するのではなく、トレーニングプロジェクトだけです)。APIを見ると、アクティブなJInternalFrameではなく、すべてのJInternalFrameを取得する関数のみが表示されます。
3 に答える
JDekstopPane.getSelectedFrame () メソッド(ドキュメントから:このJDesktopPaneで現在アクティブなJInternalFrame、または現在アクティブなJInternalFrameがない場合はnull)を使用するか 、デスクトップに現在表示されているJDesktopPane.getAllFrames()
すべてのリストを取得してメソッドを確認します。JInternalFrames
isSelected()
を作成し、繰り返しながらList<JInternalFrame>
確認isSelected()
します。
補遺:メニューから内部フレームを選択するために使用するこの例も参照してください。Action
内部フレームの使用方法というタイトルのJavaチュートリアルを見たことがありますか?InternalFrameListener
コードでは、 (API)(チュートリアル)が必要であり、アクティブ化/非アクティブ化イベントをリッスンします。アクティブ化されたとは、内部フレームが一番上に移動したことを意味します。非アクティブ化は、それがもはや上にないことを意味します。JDesktopPane
extendsなので、JLayeredPane
追加するコンポーネントのzオーダーを設定することもできます。
すべてのペインを反復処理しないでください。イベントを使用してください。
何らかの理由で、イベント駆動型のアプローチを使用するのではなく、UIをポーリングしたい場合getSelectedFrame
は、アクティブなを返す呼び出しを行うことができますJInternalFrame
。なぜ誰もそれについて言及しなかったのかわかりません。