私はJavaSwingを初めて使用し、割り当てに取り組んでいます。コンポーネントにいくつかのポリゴンがあります。ポリゴンに入力すると、ハイライト表示する必要があります(つまり、色で塗りつぶされます)。
次のポリゴンに移動すると、ハイライト表示する必要があり、前のポリゴンを消去する必要があります(つまり、通常の状態)。私はいくつかの例を見つけましたが、それらは「マウスプレス」イベントを使用していますが、私のものは異なります。
私はJavaSwingを初めて使用し、割り当てに取り組んでいます。コンポーネントにいくつかのポリゴンがあります。ポリゴンに入力すると、ハイライト表示する必要があります(つまり、色で塗りつぶされます)。
次のポリゴンに移動すると、ハイライト表示する必要があり、前のポリゴンを消去する必要があります(つまり、通常の状態)。私はいくつかの例を見つけましたが、それらは「マウスプレス」イベントを使用していますが、私のものは異なります。
SwingチュートリアルのMouseListener/MouseMotionListenerセクションを通過しましたか?そうでない場合、およびまだ何も書かれていない場合は、チュートリアルを確認し、MouseMotionListenerの使用を検討することをお勧めします。mouseEnteredをリッスンしたくないが、mouseMovedの可能性が高い。擬似コードの例は次のとおりです。
in MouseMotionListener or MouseAdapter
mouseMoved method
get position of mouse pointer via the MouseEvent parameter.
For loop through list of Polygons
If mouse inside of polygon, highlight it.
Else, un-highlight it.
End for loop
End of mouseMoved method.
end MouseMotionListener or MouseAdapter
java.awt.Polygon にはcontains(double x, double y)
、x、y マウス座標がポリゴン内にある場合に true を返すメソッドがあります。
(x,y) 座標はMouseMotionListener
、形状を描画しているコンテナと、実装されているpublic void mouseMoved(MouseEvent e)
メソッドに a を実装し、座標e.getX()
をe.getY()
取得してポリゴン内にあるかどうかを確認することから得られます。