Die move()-Methode in der Star-Klasse ist für das Verschieben des Sterns verantwortlich. Allerdings überprüft es nur die WIDTH- und HEIGHT-Konstanten, die für die Größe des JPanels definiert sind, auf dem der Stern gezeichnet wird. Das bedeutet, dass sich der Stern, wenn er sich außerhalb des JPanels bewegt, weiterhin in die gleiche Richtung bewegt und nicht innerhalb des JPanels verschoben wird.
Um dies zu beheben, muss die Methode move() auf aktualisiert werden Überprüfen Sie die Breite und Höhe des JFrame, in dem sich das JPanel befindet. Auf diese Weise wird der Stern innerhalb des JFrame verschoben, wenn er sich außerhalb des JPanels bewegt. Hier ist der aktualisierte Code für die move()-Methode:
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); }
Das obige ist der detaillierte Inhalt vonWie kann ich die Sternbewegung innerhalb eines JFrame mithilfe der Methode move() einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!