La méthode move() de la classe Star est responsable du déplacement de l'étoile. Cependant, il vérifie uniquement les constantes WIDTH et HEIGHT, qui sont définies pour la taille du JPanel sur lequel l'étoile est dessinée. Cela signifie que si l'étoile se déplace en dehors du JPanel, elle continuera à se déplacer dans la même direction et ne sera pas déplacée dans le JPanel.
Pour résoudre ce problème, la méthode move() doit être mise à jour pour vérifiez la largeur et la hauteur du JFrame dans lequel se trouve le JPanel. De cette façon, l'étoile sera déplacée dans le JFrame si elle se déplace en dehors du JPanel. Voici le code mis à jour pour la méthode move() :
public void move() { if (location.x < 0 || location.x > frame.getContentPane().getWidth() - 20) { xIncr = -xIncr; } if (location.y < 0 || location.y > frame.getContentPane().getHeight() - 20) { yIncr = -yIncr; } translate(xIncr, yIncr); location.setLocation(location.x + xIncr, location.y + yIncr); }
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!