Star クラスの move() メソッドは、スターの移動を担当します。ただし、チェックするのは WIDTH 定数と HEIGHT 定数のみです。これらの定数は、Star が描画される JPanel のサイズに対して定義されています。これは、Star が JPanel の外に移動しても、同じ方向に移動し続け、JPanel 内で再配置されないことを意味します。
これを修正するには、move() メソッドを次のように更新する必要があります。 JPanel が内部にある JFrame の幅と高さを確認してください。このようにして、Star が JPanel の外に移動した場合、Star は JFrame 内で再配置されます。 move() メソッドの更新されたコードは次のとおりです:
public void move() { if (location.x < 0 || location.x > frame.getContentPane().getWidth() - 20) { xIncr = -xIncr; } if (location.y < 0 || location.y > frame.getContentPane().getHeight() - 20) { yIncr = -yIncr; } translate(xIncr, yIncr); location.setLocation(location.x + xIncr, location.y + yIncr); }
以上がmove() メソッドを使用してスターの動きを JFrame 内に制限する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。