1

同じ項目セットの 2 つの「ビュー」を表示するプログラムに取り組んでいます。そのため、トップダウン ビューが変更されたときにサイド ビューが更新される (およびその逆) ように、何かを設定する必要があります。

これまでの私の構造を理解できるように、関連するコードの簡単な概要を次に示します。

public class DraggableComponent extends JComponent
{
    //Contains code for MouseMovementListener that makes the item draggable
}

public class ItemGraphic extends DraggableComponent
{
    //Code to render the graphic
}

public class Item
{
    private ItemGraphic topGraphic;
    private ItemGraphic sideGraphic;
}

GUI で各グラフィックを正常に表示できます。各グラフィックを個別にドラッグすることもできます。「リンク」がありません。私が考えてきたいくつかのアイデア:

  • GUI 全体に対して 1 つのリスナーを用意します。各項目をループし、カーソルがいずれかのグラフィックの境界内にある場合は、もう一方のグラフィックを移動します。この方法の効率が心配です。
  • 複数の「ペア」リスナー (これがどのように機能するかはよくわかりませんが、各グラフィックが他のペアのグラフィックのリスナーを持つという考えです)
4

2 に答える 2

2

2 つのコンポーネントが共有および監視できる何らかの中間モデルが必要になることをお勧めします。

ビューで更新/変更すると、必要な値でモデルが更新されます。他のすべての関係者は、リスナー インターフェイスを介して変更を通知され、それに応じて自分自身を更新します。

同様の手法を使用して、2 つのスクロール ペインをリンクします。

于 2012-09-29T19:46:07.623 に答える
2

ビューを更新するモデルのリスナーを使用して、両方の「ビュー」で共有される 1 つの「モデル」が必要です。このように、ビューを変更すると、コントロールはモデルを変更し、両方のビューを更新します。これは、MVC (model-view-control) プログラム設計の繰り返しにすぎません。

于 2012-09-29T19:44:47.730 に答える