Bonjour,
Je suis actuellement en train de débuter dans les interfaces graphiques et j'ai un petit souci.
J'ai créé une classe Fenetre héritant de JFrame, et une classe ZoneDessin héritant de JPanel.
Dans ma classe ZoneDessin, j'ai la méthode suivante pour créer un rond rouge.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public void paintComponent(Graphics graph){
        graph.setColor(Color.red);
        graph.fillOval(this.x, this.y, 50, 50);
    }
Dans mon main, j'instancie ma classe Fenetre et j'appelle ma méthode dans laquelle j'instancie ZoneDessin.
Jusque là pas de souci, j'obtiens bien mon rond rouge.

Pour la suite, je cherche à la déplacer, j'ai donc créé une boucle modifiant ses coordonnées et appelant la méthode repaint suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public void repaint(){
        ZoneDessin panneauDessin = new ZoneDessin(this.x, this.y);
        this.setContentPane(panneauDessin);
    }
Et c'est là que commence mon souci. Le tout fonctionne très bien (J'utilise Thread.sleep pour ralentir mon cercle), mais pour le voir effectivement bouger, je dois avec ma souris modifier en continue la taille de ma fenêtre. Si je ne touche à rien, je ne vois rien. Si je redimensionne constamment ma fenêtre, je vois bien mon cercle bouger.

J'imagine qu'en plus ça doit être quelque chose de très simple, mais cela me laisse perplexe.

Merci à ceux qui auront pris la peine de me lire, en espérant avoir été suffisamment clair