在您的應用程式中,您遇到一個問題,您需要從單獨的類別存取JPanel 的寬度和高度類別(矩形)。 JPanel 提供了檢索其尺寸的方法,但在類別外部呼叫時傳回 0。
一種解決方案是將 JPanel 實例作為參數傳遞給 move Rect 類別中的 () 方法。這提供了對 JPanel 維度的存取:
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 } }
另一種方法是取得 JPanel 的 Dimension 物件並將其傳遞給 move() 方法:
public void move(Dimension dimension) { int jpWidth = dimension.width; int jpHeight = dimension.height; // rest of the movement logic using jpWidth and jpHeight }
GamePanel類別內部,可以在paint()中計算Dimension物件方法:
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()); // ... } }
然後,將維度物件傳遞給Rect 類別:
for(Rect rect:rect){ rect.move(dimension); }
以上是如何從外部類別準確檢索 JPanel 寬度和高度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!