3

GameViewCanvas extends JPanel多数のタイル (800x800 テクスチャ) を保持するカスタム コンポーネントがあります。ここで、GameViewCanvas でpaint()メソッドをオーバーライドして、変換されたキャンバス (ズーム、パン、回転) に子をペイントするようにしました。

ここで、MouseEvent や MouseMotionEvent などのイベントをそれぞれの子にデリゲートしたいと考えています。もちろん、問題は、Swing が子が実際のフレームのどこにいるかわからないことです。親のようにメソッドをオーバーライドできるかもしれないと思ったのですgetComponentAtが、そのような運はありません.Swingが子を直接ループしていると思いますか?

たぶん私のやり方が間違っているので、アドバイスをお願いします。前もって感謝します。

4

1 に答える 1

4

をご覧くださいJXLayer。それはまさにあなたが尋ねたことをします。

Piet Blok による優れた例がいくつかありますが、残念ながらネットから消えてしまいました。この目的のために、ここで利用できるようにしました。

TestWrappedpbjar ソースのデモを見てください。それはおそらく(中の)最良の例です。

ここに画像の説明を入力

ps -JXLayer現在、公式に Java 7 の一部として知られています。JLayer

于 2013-05-18T10:52:39.827 に答える