Java スイング:UI コンポーネントをロジックの動作から分離します。これにはどのようにアプローチしますか?

StackOverflow https://stackoverflow.com/questions/2220648

質問

たとえば、NetBeans で私がやっていることは次のとおりです。

  • Swing コンポーネント タイプを接尾辞として付けた UI コンポーネント クラスを作成します。JPanel、例:MyUIWidgetJPanel
  • 動作/ロジックを処理するためのロジック/動作クラスを作成します。UI コンポーネントが使用されると何が起こるか。その中のボタンが押されたなど、MyUIWidgetLogic

あるコンポーネントの動作/結果が別のコンポーネントに影響を与える場合、参照を使用してコンポーネント/ロジックをリンクすることもあります。表示される一部のオプションは関連性がなくなったり、状況に応じたオプションを提供したりします。

これについてどう思いますか?良い?悪い?

職業はなんですか?

役に立ちましたか?

解決

私はプレゼンテーションモデルパターンを使用する傾向がある。

UIクラスに別のロジックを含むクラスを作成します。

基本的に、あなたが何をするかのようです。 UIクラスは、ロジックを含めることはできません - インタフェースを表示するために必要なだけのコードを

これで、<のhref =「http://www.jgoodies.com/freeware/libraries/binding/」のrel = "nofollowをnoreferrerのようなものを使用してバックエンドのプレゼンテーションモデルクラスにフロントエンドの値をバインドすることができますにバインド「>なJGoodiesは(私は春のRCPは、同様に、このためにはかなり良好であることを理解し)ます。

他のヒント

私はこの記事<のhref = "http://today.java.net/pub/a/today/2007/02/22/how-to-write-custom-swing-component.html" のrel =を見つけました"nofollowをnoreferrer"> のコンポーネントを<スイングカスタム記述方法/ em>ののUI委譲の配管の一例として、有用ます。

の痴女リッチクライアントは、のチェットハーゼとロマン・ガイでを広くするためのヒントにお勧めです視覚的にリッチクライアントアプリケーションます。

Swingコンポーネントは、イベントディスパッチスレッドを経由してイベントを使用して通信するので、あなたは通常、あなたが(JButtonのように)興味を持っている要素にActionListenerの実装を提供します。それはロジックが含まれていますが、スレッドを使用しない場合は、あなたのActionListenerはいくつかの計算を行うと、コントロールを保持している間、(JButtonのように)あなたのUI要素が応答しないことを心に留めておくだろうこれらのActionListenerの実装です。

あなたが記述していることはMVC(モデルビューコントローラ)と呼ばれるデザインパターンであることは議論の余地のないではありませんが、GUIでの懸念を分離するための最も一般的な方法です。また、あなたが同じデータ(モデル)のいくつかの表現(ビュー)を持っているとき、あなたがそれらのすべてがデータ変更時に更新されていることを確認することができますことを保証します。 MVCのコントローラ部分は、(とりわけ)を有効にする必要があります部品ユーザインターフェースを伝えるの世話をする。

http://en.wikipedia.org /ウィキ/モデル%E2%80%93view%E2%80%93controllerする

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