Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java Graphique] Héritage d'un JPanel

Lorsque l'héritage plante tout...

    20 mai 2007 à 12:02:59

    Bonjour les Zéros... Décidément, ce projet me donne du fil à retordre...

    L'interface graphique étant quasiment finie, il me reste un bug que je n'arrive pas à corriger. Dans ma fenêtre principale, donc dans le conteneur, j'ajoute un JPanel qui sera la "zone graphique" là où j'afficherai des cercles, des rectangles etc.

    Lorsque je fais

    JPanel jpanel = new JPanel();
    jpanel.setBackground(Color.WHITE);
    this.conteneur.add(jpanel);


    Pas de soucis... Mais pour les besoins du projets, je dois enregistrer certaines informations à propos du JPanel : la solution la plus propre est bien sûr de recréer une classe héritée de JPanel comme suit...


    public class Picture extends JPanel {
       private Color bgColor;

       public Picture() {
          super();
          this.bgColor = Color.BLACK;
       }

       public void setBgColor(Color c) {
           super.setBackground(c);
           this.bgColor = c;
       }

      // etc.
    }


    // Dans le programme principal, à la place du code précédent :
    Picture picture = new Picture();
    picture.setBgColor(Color.WHITE);
    conteneur.add(picture);
    this.



    Eh, bien plus de Zone blanche, j'ai même essayé d'ajouter un bouton à picture (picture.add(new JButton("bouton"));) sans succès, pas de Picture, pas de bouton...

    L'héritage d'un JPanel nécessite t-il une manip' supplémentaire ???





    Merci beaucoup :)
    • Partager sur Facebook
    • Partager sur Twitter
      21 mai 2007 à 15:29:16

      Je n'ai jamais tenté de faire des classe héritant de composant d'élements graphique.

      Essaye ceci

      public class Picture
      {
           private JPanel jpanel;
           private Color bgColor;

           public Picture()
           {
                jpanel = new JPanel();
                jpanel.setBackground(Color.WHITE);
           }

           public void setBgColor(Color c)
           {
                jpanel.setBackground(c);
                this.bgColor = c;
           }

           // Retourne le composant pour pouvoir l'insérer dans une fenêtre
           public JPanel getJPanel() {
                return jpanel;
           }
      }


      Bon, je pars sur principe qu'il y ai autre chose que la couleur à enregistrer.
      Parce que sinon, pourquoi s'embéter ? Il y a une méthode qui retourne la couleur il me semble.
      • Partager sur Facebook
      • Partager sur Twitter
        24 mai 2007 à 21:33:27

        J'ai trouvé une autre solution me permettant de conserver l'héritage graphique. Merci pour ta réponse !
        • Partager sur Facebook
        • Partager sur Twitter

        [Java Graphique] Héritage d'un JPanel

        × 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