0

別の JPanel (B) を含む JPanel (A) があります。各パネルは、MouseMotionListener と MouseListener を実装します。ドラッグすると、内側/上部パネル (B) のみがこのイベントに応答します。そこで、A から MouseMotionListener を削除し、B から MouseListener を削除しました。2 番目のテストは、カーソルが B の外にある場合にのみ A が応答することを示しています。

両方のパネルが同じリスナーに反応する解決策はありますか。各イベントの getX() メソッドが必要です。各パネルは、ドラッグ イベントで別の x 値を返す必要があります。したがって、私の場合、イベント転送は解決策になりません。

どうもありがとう...

4

1 に答える 1

1

Swing がイベントのバブリングをサポートしているとは思えません (つまり、1 つの要素のイベントはその親に送信されません)。これに対する回避策は、親オブジェクトを子に渡し、イベントが子で発生したときにそのイベント ハンドラーを手動で呼び出すことです (うまくいきませんが、機能します)。

于 2012-06-16T19:06:38.077 に答える