質問

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

Swing、Swingアプリケーションフレームワーク、H2データベースを使用しています。

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

私は物事を清潔に保ち、むしろポータブルで柔軟に保ちたいと思います(たとえば、いくつかのタブを無効にすることができます。

ここに質問があります:

1)データベースのコンテンツが変更されたときにタブを「更新」する方法は?リスナーインターフェイスを実装しますか?そのインターフェイスを定義する必要がありますか、それともすでに存在しているものがありますか?

2)さまざまなタブを「リンク」する方法で、他のタブから簡単にジャンプできるようにする方法(宛先タブを正しい「ビュー」にセットアップするために何らかの引数を掲載する必要がある場合があります)

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

そして、「方法」を尋ねるとき、私は本当に「最良の方法」を意味します...私はすでにそれを機能させることができます...使用、パターンなどを設計するのに適切なツールを探しています。

役に立ちましたか?

解決

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

リスナーを実装します(計画中)。 Javaの観察可能なインターフェイスをご覧ください。

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

他のヒント

GUIアプリケーションビルディングにはさまざまな戦略があります。 ここ いくつかの記事について。

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

一般的なスイングに関しては、ベストプラクティスは、イベントを発射するコアクラス(「ビジネスロジック」)に関連していないすべてのものを考慮することです。すべてのスイングクラスを適切なイベントリスナーとして登録し、GUIを適切に更新します(shingutilities.invokelater()はここであなたの友人です)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top