私が作成しようとしている効果は、マウスが JPanel の特定のゾーンに入るとマウス カーソル アイコンが変化し、ゾーンを離れるとデフォルトに切り替わることです。MouseMotionListener クラスの MouseMoved 機能を使用しています。この機能は、マウスが JPanel の上を移動するたびに、座標が特別な領域に対応しているかどうかを確認します。
ただ、この方法だとパソコンのプロセッサへの負担が非常に大きいので、もっと効率の良い方法がないか聞きたいと思いました。どんな助けでも大歓迎です。
プログラムが行うことは、JPanel に図を描画することです。[接続] ボタンが選択されている場合、ユーザーが 1 つの図をクリックしてから別の図をクリックすると、それらの図が線で接続されます。
図形は JPanel に描画され、それぞれの領域境界が格納されているため、マウスが移動すると、現在の X 座標と Y 座標がそれらの領域のいずれかの内側にあるかどうかがチェックされ、そうであればカーソルが変更されます。checkValidConnectionRegion は、現在の X 変数と Y 変数が Figure の領域内にあるかどうかを確認します。ハンドラーのコードは次のとおりです。
public void mouseMoved(MouseEvent e)
{
if(GUI.Connectionbutton.isSelected())
{
x = e.getX();
y = e.getY();
checkValidConnectionRegion();
if(validConnectionRegion)
setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
if(!validConnectionRegion)
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}