在您的应用程序中,您遇到一个问题,您需要从单独的类访问 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中文网其他相关文章!