Maison >Java >javaDidacticiel >Comment récupérer avec précision la largeur et la hauteur de JPanel à partir d'une classe externe ?
Dans votre application, vous rencontrez un problème où vous devez accéder à la largeur et à la hauteur d'un JPanel à partir d'un classe (Rect). JPanel fournit des méthodes pour récupérer ses dimensions, mais elles renvoient 0 lorsqu'elles sont appelées en dehors de la classe.
Une solution consiste à transmettre l'instance de JPanel en tant que paramètre au déplacement () dans la classe Rect. Cela permet d'accéder aux dimensions du 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 } }
Une autre approche consiste à obtenir l'objet Dimension du JPanel et à le transmettre à la méthode move() :
public void move(Dimension dimension) { int jpWidth = dimension.width; int jpHeight = dimension.height; // rest of the movement logic using jpWidth and jpHeight }
Dans la classe GamePanel, vous pouvez calculer l'objet Dimension dans le paint() méthode :
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()); // ... } }
Ensuite, transmettez l'objet dimension à la classe Rect :
for(Rect rect:rect){ rect.move(dimension); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!