コンポーネントに複数のDropTargetListenerを指定するにはどうすればよいですか?

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

  •  05-07-2019
  •  | 
  •  

質問

Javaの Component には DropTarget を1つしか設定できないことを(難しい方法で)知りました。汗をかくことはありませんが、その DropTarget に別の DropTargetListener を追加するだけです。 code> DropTargetListener !

非常に異なるイベントをリッスンする2つの DropTargetListener があります(1つはコンポーネント内でドラッグアンドドロップされるものを処理し、もう1つはコンポーネント外から処理します)。それらを1つの巨大な DropTargetListener に結合する必要がありますか、またはそれらを分離するエレガントな方法がありますか?

役に立ちましたか?

解決

DropTarget はユニキャストソースなので、最大で1つの DropTargetListener を追加できます。ドロップされるもののソース(内部/外部)を調べ、結果に応じて DropTargetListener の1つを呼び出す単純なオブジェクトである必要があると思います。

編集:「ユニバーサル」を作成することに集中している場合解決策として、元のイベントにメソッド呼び出しを渡すラッパーイベントを作成してみてください。ただし、 rejectDrop() acceptDrop()(および場合によっては他のメソッドをインターセプトします)トラブル)、ラッパーが受け入れられるまで、ラッパーをリスナーに渡します。これは、リスナーが「良い」と認識することを前提としています。イベントに応じて行動します。

他のヒント

満足のいく解決策が見つからない場合は、複合パターンを使用して、子 DropTargetListener のリストを持つ DropTargetListener を作成します。メソッドの1つが呼び出されるたびに、リスナーのリストを反復処理し、同じメソッドを呼び出します。これにより、単一の DropTargetListener Component に渡すことができますが、複数の DropTargetListener が呼び出されます。

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