1

GUI を開発していますが、セッション間でレイアウト情報を保存したいと考えています。具体的には、ユーザーがGUIを実行してからGUIを画面の別の場所に移動した場合、GUIが閉じる前にその画面の場所を保存して、次回開いたときに新しい画面の場所で開くようにしたいと思います。幅と高さについても同じことをしたいと思います(ユーザーがGUIに対して行ったサイズ変更を保持するため)。

最後に、複数の内部フレームを持つ GUI 内でデスクトップ ペインを使用します。各内部フレームのレイアウト (画面の位置、高さと幅、アイコン化 (最小化) されているかどうか) を維持したいと思っています。

私の質問は、Javaでこれを行うための簡単な組み込みの方法はありますか? または、手動で行う必要がありますか。私は周りを検索しましたが、このトピックについてはあまり見つけられませんでした。

Netbeans GUI エディターを使用して GUI を開発しています。ありがとう!!

4

3 に答える 3

2

選択肢はいくらでもあります。

保管所

  1. プロパティ。これは基本的に、機能Stringを持つキーと値のペアです。ただし、値を解析できる必要がありますloadsaveString
  2. Preferences API は、プリミティブを格納できるため、それよりも少し高度Propertiesですが、これらの値を格納する場所を (多かれ少なかれ) 制御できなくなります。例_
  3. あなたが本当に冒険好きなら、XML api、おそらくJAXBを使用できます。

イベントのキャプチャ

メインウィンドウは実際には簡単です。WindowListener基本的には、メイン ウィンドウにをアタッチして、windowClosingイベントを監視するだけです。その時点で、フレームの境界を取得し、希望する方法で永続化する必要があります。ウィンドウリスナーの書き方を確認してください

デスクトップは、必要に応じていくつかの追加メカニズムを提供します。

それぞれにInternalFrameListenerを追加して、またはイベントJInternalFrameを監視するだけです。internalFrameClosinginternalFrameClosed

DesktopManagerまたは、独自に実装してメソッドをオーバーライドすることもできますcloseFrameDesktopManagerルックアンドフィールごとに異なるため、できればこれは避けたいと思います

于 2013-08-09T21:45:59.017 に答える
1

WindowListener呼び出しでand を実装しwindowClosing()、GUI に関する情報をプロパティシステムに保存してから、storeそれらをファイルに保存します。

GUI の構築時に、プロパティ ファイル (存在する場合) を読み取り、属性を保持するコンポーネントのプロパティを設定します。

プロパティを上書きしないように、内部フレームごとに異なる名前を使用してください。

于 2013-08-09T21:24:47.557 に答える
1

いいえ、それを行うために利用できるライブラリはありません。すべて手動でコーディングする必要があります。
JDesktop などの他の GUI フレームワークに移行できる場合は、組み込み関数がありますが、フレームワークに関連付けられています。

于 2013-08-09T21:36:29.397 に答える