Heim >Java >javaLernprogramm >Wie kann ich die Sternbewegung innerhalb eines JFrame mithilfe der Methode move() einschränken?

Wie kann ich die Sternbewegung innerhalb eines JFrame mithilfe der Methode move() einschränken?

Barbara Streisand
Barbara StreisandOriginal
2024-11-30 21:24:14418Durchsuche

How to Confine Star Movement Within a JFrame Using the move() Method?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn