Heim > Java > javaLernprogramm > Wie kann ich JPanel-Breite und -Höhe genau aus einer externen Klasse abrufen?

Wie kann ich JPanel-Breite und -Höhe genau aus einer externen Klasse abrufen?

Linda Hamilton
Freigeben: 2024-12-12 13:06:10
Original
306 Leute haben es durchsucht

How to Accurately Retrieve JPanel Width and Height from an External Class?

JPanel-Breite und -Höhe von einer externen Klasse abrufen

In Ihrer Anwendung stoßen Sie auf ein Problem, bei dem Sie von einem separaten auf die Breite und Höhe eines JPanels zugreifen müssen Klasse (Rect). JPanel bietet Methoden zum Abrufen seiner Dimensionen, aber sie geben 0 zurück, wenn sie außerhalb der Klasse aufgerufen werden.

JPanel-Instanz an Rect-Klasse übergeben

Eine Lösung besteht darin, die JPanel-Instanz als Parameter für die Verschiebung zu übergeben ()-Methode in der Rect-Klasse. Dies ermöglicht den Zugriff auf die Dimensionen des JPanels:

public class Rect {
    //... properties

    public void move(JPanel panel) {
        int jpWidth = panel.getWidth();
        int jpHeight = panel.getHeight();

        // rest of the movement logic using jpWidth and jpHeight
    }
}
Nach dem Login kopieren

Übergabe des Dimensionsobjekts

Ein anderer Ansatz besteht darin, das Dimension-Objekt des JPanels abzurufen und es an die move()-Methode zu übergeben:

public void move(Dimension dimension) {
    int jpWidth = dimension.width;
    int jpHeight = dimension.height;

    // rest of the movement logic using jpWidth and jpHeight
}
Nach dem Login kopieren

Innerhalb der GamePanel-Klasse können Sie das Dimension-Objekt im paint() berechnen Methode:

public class GamePanel extends JPanel implements Runnable {
    
    private Dimension dimension;

    // rest of the class

    public void paint(Graphics g) {
        super.paint(g);

        dimension = new Dimension(getWidth(), getHeight());

        // ...
    }
}
Nach dem Login kopieren

Übergeben Sie dann das Dimensionsobjekt an die Rect-Klasse:

for(Rect rect:rect){
    rect.move(dimension);
}
Nach dem Login kopieren

Überlegungen

  • Die erste Methode ist bei Bedarf praktischer um direkt auf die Breite und Höhe von JPanel zuzugreifen.
  • Die zweite Methode ist flexibler, da sie Zugriff auf das Dimension-Objekt bietet, das für verwendet werden kann Berechnungen oder Speicherung.
  • Um eine optimale Leistung zu erzielen, vermeiden Sie die wiederholte Berechnung des Dimensionsobjekts. Verwenden Sie eine private Variable, um den neuesten Wert zwischenzuspeichern.

Das obige ist der detaillierte Inhalt vonWie kann ich JPanel-Breite und -Höhe genau aus einer externen Klasse abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage