Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jpanel charger 2 fois

    6 mars 2019 à 14:09:43

    Bonjour, 

    J'ai un petit problème avec mon Jpanel il est charger 2 fois je pense car je peux voir 2 fois le msg du print dans la console des solutions svp ? 

    Voila une petite démo de ce qui ce passe : 

    Mon code est le suivant : 

    Main : 

    package fr.rehark.Pong;
    
    public class Main {
    
        public static void main(String[] args) {
    
            System.out.println("interface V 0.1");
    
            Window fenetre = new Window();
    
        }
    
    }
    

    Fenetre : 

    package fr.rehark.Pong;
    
    import javax.swing.JFrame;
    
    public class Window extends JFrame {
    
        public Window() {
    
            System.out.println("interface");
    
            this.setTitle("interface");
            this.setSize(1000, 500);
            this.setLocationRelativeTo(null);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setResizable(false);
    
            Pannel pan = new Pannel();
            this.setContentPane(pan);
    
            this.setVisible(true);
    
        }
    
    }

    Pannel :

    package fr.rehark.Pong;

    import java.awt.Graphics;
    import javax.swing.JPanel;

    public class Pannel extends JPanel {

    public void paintComponent(Graphics g){

    System.out.println("Loading Pannel");
    g.fillOval(20, 20, 75, 75);

    }
     
    • Partager sur Facebook
    • Partager sur Twitter

    Créer une procédure qui s'appelle elle même, procédurception !

      6 mars 2019 à 15:01:17

      Bonjour,

      C'est la méthode paintComponent() qui est appelé deux fois: une fois quand tu lance ton programme et une fois quand tu clique sur l’icône du programme pour afficher ta fenêtre "interface".

      • Partager sur Facebook
      • Partager sur Twitter
        6 mars 2019 à 20:51:19

        et il y'a moyen de l'appeler qu'une seul fois ?
        • Partager sur Facebook
        • Partager sur Twitter

        Créer une procédure qui s'appelle elle même, procédurception !

          8 mars 2019 à 15:15:51

          Bonjour,

          Tu pourrais créer un boolean, par exemple

          boolean chargé = false
          puis dans le paintComponent :
          if(!chargé) {
            //charger les éléments
            chargé = true;
          }
          Ce code ne s’exécutera qu'une seule fois.
          • Partager sur Facebook
          • Partager sur Twitter
            13 mars 2019 à 9:54:36

            Merci beaucoup ^^ désolé je répond un peu tard j'essaye cette solution ^^.

            (edit)

            J'ai testé cette solution mais malheureusement il continue d'éxécuter 2 fois mon pannel :/ c'est vraiment un mystere pour moi là :/

            -
            Edité par RehArk 13 mars 2019 à 10:20:14

            • Partager sur Facebook
            • Partager sur Twitter

            Créer une procédure qui s'appelle elle même, procédurception !

              17 mars 2019 à 10:56:03

              Bonjour,

              Montre donc le nouveau code du JPanel pour voir 

              (edit)

              Voici un exemple d'utilisation dans un de mes projets de jeu :

              public void paintComponent(Graphics g_) {
              	if(!initialized) init();
              	draw();
              
              	g_.drawImage(canvas, 0, 0, this);
              }

              Où init() est la fonction d'initialisation qui contient un initialized = true,  et draw() s'occupe de tout le dessin (sur une image).

              Enfin, je redessine l'image sur l'écran avec le drawImage.

              -
              Edité par TeloPhilippe 17 mars 2019 à 11:06:47

              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2019 à 13:28:26

                c'est bon le problème est résolue merci ^^
                • Partager sur Facebook
                • Partager sur Twitter

                Créer une procédure qui s'appelle elle même, procédurception !

                Jpanel charger 2 fois

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown