9

JDesktopPane内にあるアクティブな(フォーカスを持つ)フレーム(JInternalFrame)を取得するにはどうすればよいですか?MDIメモ帳に必要です(誰もがそれを使用するのではなく、トレーニングプロジェクトだけです)。APIを見ると、アクティブなJInternalFrameではなく、すべてのJInternalFrameを取得する関数のみが表示されます。

4

3 に答える 3

12

JDekstopPane.getSelectedFrame () メソッド(ドキュメントから:このJDesktopPaneで現在アクティブなJInternalFrame、または現在アクティブなJInternalFrameがない場合はnull)を使用するか 、デスクトップに現在表示されているJDesktopPane.getAllFrames()すべてのリストを取得してメソッドを確認します。JInternalFramesisSelected()

于 2011-12-17T04:40:36.350 に答える
2

を作成し、繰り返しながらList<JInternalFrame>確認isSelected()します。

補遺:メニューから内部フレームを選択するために使用するこの例も参照してください。Action

于 2011-12-17T04:38:13.783 に答える
2

内部フレームの使用方法というタイトルのJavaチュートリアルを見たことがありますか?InternalFrameListenerコードでは、 (API)(チュートリアル)が必要であり、アクティブ化/非アクティブ化イベントをリッスンします。アクティブ化されたとは、内部フレームが一番上に移動したことを意味します。非アクティブ化は、それがもはや上にないことを意味します。JDesktopPaneextendsなので、JLayeredPane追加するコンポーネントのzオーダーを設定することもできます。

すべてのペインを反復処理しないでください。イベントを使用してください。

何らかの理由で、イベント駆動型のアプローチを使用するのではなく、UIをポーリングしたい場合getSelectedFrameは、アクティブなを返す呼び出しを行うことができますJInternalFrame。なぜ誰もそれについて言及しなかったのかわかりません。

于 2011-12-17T04:48:24.067 に答える