Heim >Java >javaLernprogramm >Wie greife ich über eine externe Klasse auf die Breite und Höhe von JPanel zu?

Wie greife ich über eine externe Klasse auf die Breite und Höhe von JPanel zu?

Susan Sarandon
Susan SarandonOriginal
2024-12-14 18:25:13688Durchsuche

How to Access JPanel Width and Height from an External Class?

So erhalten Sie JPanel-Breite und -Höhe außerhalb der Klasse

In Ihrem Code versuchen Sie, auf die Breite und Höhe des JPanels zuzugreifen aus der Rect-Klasse, was nicht möglich ist, da die Rect-Klasse nicht weiß, dass sie JPanel enthält. Um dieses Problem zu beheben, können Sie eine Referenz des JPanel an die move()-Methode innerhalb der Rect-Klasse übergeben.

So können Sie die ändern Code:

GamePanel.java

public class GamePanel extends JPanel implements Runnable{
    // ... (same as before)

    public void move() {
        for(Rect rect: rect) {
            rect.move(this); // Passing 'this' reference to the 'move()' method
        }
    }
}

Rect.java

public class Rect {
    // ... (same as before)

    public void move(JPanel panel){
        // Now you can access the JPanel's width and height using 'panel'
        int jpWidth = panel.getWidth();
        int jpHeight = panel.getHeight();
        
        // ... (remaining code)
    }
}

Mit diesen Änderungen ist der Umzug ()-Methode in der Rect-Klasse kann jetzt auf die Breite und Höhe des aktualisierten JPanel zugreifen, sodass Sie die Bewegung der Rechtecke basierend auf dem aktuellen Fenster anpassen können Abmessungen.

Das obige ist der detaillierte Inhalt vonWie greife ich über eine externe Klasse auf die Breite und Höhe von JPanel zu?. 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