Fensterbreite und -höhe außerhalb der Klasse abrufen
Beim Arbeiten mit Java Swing ist es aus verschiedenen Gründen oft notwendig, die Fensterabmessungen abzurufen B. die Größenänderung oder Neupositionierung von Elementen. Allerdings kann der Aufruf der Methoden getWidth() oder getHeight() außerhalb der Klasse, in der sie definiert sind, ungenaue Ergebnisse zurückgeben, insbesondere wenn die Fenstergröße geändert wird.
Um dieses Problem zu beheben, besteht ein Ansatz darin, das JPanel zu übergeben Instanz auf die Methode, die die Fensterabmessungen benötigt. Auf diese Weise können Sie innerhalb dieser Methode direkt auf die Methoden getWidth() und getHeight() zugreifen.
Betrachten Sie beispielsweise den folgenden Code:
public class MyPanel extends JPanel { private int jpWidth; private int jpHeight; @Override public void paint(Graphics g) { jpWidth = getWidth(); jpHeight = getHeight(); // ... } public void myMethod() { // Now you have access to `jpWidth` and `jpHeight` within this method } }
Indem Sie MyPanel an übergeben Mit der myMethod()-Methode können Sie sicherstellen, dass sie Zugriff auf die aktualisierten Fensterabmessungen hat, auch wenn die Fenstergröße geändert wird.
public class MyOtherClass { public void myMethod(MyPanel panel) { int panelWidth = panel.getWidth(); int panelHeight = panel.getHeight(); // ... } }
Mit diesem Ansatz können Sie die erhalten Korrigieren Sie die Fensterabmessungen außerhalb der JPanel-Klasse, ohne sich auf potenziell ungenaue Werte innerhalb der paint()-Methode verlassen zu müssen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Breite und Höhe des Java Swing-Fensters außerhalb einer Klasse genau ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!