0

私の Java アプリケーションはそれほど大きくありませんが、「正しい方法」で実行したいと考えています。大きな混乱を起こさないための提案を探しています...

Swing、Swing Application Framework、および H2 データベースを使用しています。

異なるタブを持つ単一フレームのアプリケーションです。ほとんどのタブは、データベース内のデータのいくつかの側面を反映しています。それらのいくつかはそれを変更することができます。一部のタブには、別のタブにリダイレクトするボタンまたはアクションがあります...基本的にはそれだけです。

私は物事をきれいに保ち、移植性と柔軟性を高めたいと考えています(たとえば、一部のタブを無効にしたり、簡単に追加したりできます)。

質問は次のとおりです。

1) データベースの内容が変更されたときにタブを「更新」する方法は? Listener インターフェイスを実装しますか? そのインターフェースを定義する必要がありますか、それとも再利用できる既存のものがありますか?

2) さまざまなタブを一緒に「リンク」して、あるタブから別のタブに簡単にジャンプできるようにする方法 (および、目的のタブを適切な「ビュー」に設定するためにいくつかの引数を運ぶ必要がある場合があります)

3) アプリケーションの別の部分でいくつかのフィルターを設定した場合、その設定をアプリケーション全体と共有するにはどうすればよいですか?

そして、「どのように」と尋ねるとき、私は本当に「何が最善の方法であるか」を意味します...私はそれをすでに機能させることができます...使用する適切なツール、デザインパターンなどを探しているだけです。

4

3 に答える 3

2

GUI アプリケーションの構築にはさまざまな戦略があります。ここにいくつかの記事があります。

于 2010-10-29T17:29:54.003 に答える
1

スイングを使用している場合は、タブ付きペインを使用して表形式のレイアウトにすることができます。

リスナーを実装します (計画どおり)。Javaの観察可能なインターフェースを見てください。

シングルトン (PreferenceManager クラスなど) を実装して設定を保持し、アプリケーション全体でアクセスしてプロパティにアクセスできます。

于 2010-10-29T17:33:56.057 に答える
0

サーバーがすべてのクライアントへの接続を維持し、何かが変更されたときにそれらすべてを更新する必要があるプッシュ モデルが本当に必要ですか? これは少数のクライアントで実行可能ですが、すぐに問題になります。クライアントが手動で (定期的に?) 更新を要求するプル モデルを使用することをお勧めします。これは、DB の last_modified フィールドで楽観的ロックを使用する良い方法でもあります。更新を試み、最後にリロードしてから変更されている場合は、ユーザーに警告し、上書き/マージを許可します。

一般的に Swing に関して言えば、ベスト プラクティスは、イベントを起動するコア クラス (「ビジネス ロジック」) に関連する GUI 以外のすべてを除外することです。すべての Swing クラスを適切なイベント リスナーとして登録し、GUI を適切に更新します (ここでは SwingUtilities.invokeLater() があなたの味方です)。

于 2010-10-29T20:15:24.120 に答える