2

Java デスクトップ アプリケーションを作成しています。このアプリケーションでは、テーブルが 1 つあります。ユーザーがテーブルの行をダブルクリックすると、対応するデータが別のウィンドウで表示されました [フレーム -> ビュー フレーム]。ユーザーがビュー フレームを最小化し、テーブル内の別の行を選択します。再び新しいウィンドウ [フレーム] で開きました。

マルチフレームを回避するには?一度に 1 つのビュー フレームだけが必要です。ユーザーが新しいデータを表示したい場合、古いビュー フレームが終了し、新しいビュー フレームが開きます。

4

2 に答える 2

3

フレームをインスタンス変数にします。新しいフレームを表示する必要がある場合は常に、それが既に表示されているかどうかを確認し、表示されている場合は、まず既存のフレームを閉じてから新しいフレームを表示します。

于 2012-08-18T07:36:48.163 に答える
2

JFrame一般に、他のすべてのウィンドウが であるのに対し、アプリケーションに単一の がある場合が最適ですJDialog

  • 2 番目のウィンドウをモーダルにすることを検討しましたか?

  • もう 1 つのオプションは、2 番目のウィンドウが開いているかどうかを示すフラグを設定することです。そうである場合、ユーザーがテーブル内の別の行をダブルクリックすると、(新しいウィンドウを作成する代わりに) コンテンツを置き換えるだけです。

windowClosedのメソッド内でそのフラグを設定できますWindowListener。これWindowListenerを 2 番目のウィンドウに追加します。

  • Windowを呼び出して、 が開いているかどうかを確認できますWindow#isShowingJFrameこれはs とs の両方に適用されJDialogます。
于 2012-08-18T07:35:26.830 に答える