0

たとえば、JScrollPanes を持つ JPanel サブクラスに描画があり、ユーザーがクリックしたポイントをキャプチャしたいとします。たとえば、JPanel 内の描画領域が 0 から 10000 まで変化し、画面サイズがアプリオリにわからないとします。クリック イベントのマウス座標が与えられた場合、それが実際に 0 ~ 10000 の範囲のどこにあるかを特定することは可能ですか? たとえば、画面上の座標はイベントによって (300, 500) になりますが、キャンバス内の実際の位置は (5890, 3200) になる可能性があります。

4

1 に答える 1

0

コンポーネントに配信されたときのマウス座標は、コンポーネントに対して相対的に与えられるため、マウスがクリックされた可視部分である場合、JPanel には 5890,3200 が表示されます。画面座標から変換する必要がある場合は、JViewportを使用して、 JViewport.getViewRect()を介して、現在ビューポートに表示されているビューの座標を見つけることができます。JScrollPane.getViewport()を介して JScrollPane からビューポートを取得します。

于 2010-08-14T16:41:28.040 に答える