IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Différences entre JComponent et JPanel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut Différences entre JComponent et JPanel
    Bonjour, j'ai fais des recherches mais je n'ai rien trouvé qui réponde à ma question.

    Je voudrais savoir la ou les différences entre un JComponent et un Jpanel.

    Par exemple, ce code fonctionne avec une sous classe JPanel mais pas une sous classe de JComponent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public class Panneau extends JComponent{
     
     
        public Panneau()
        {
            ActionSouris teste = new ActionSouris();
            this.addMouseListener(teste);
        }
     
     
        public class ActionSouris extends MouseAdapter
        {
            @Override
            public void mouseClicked(MouseEvent e)
            {
     
                Panneau.this.setBackground(Color.BLUE);
            }
        }
     
    }
    J'ai bien ajouté ce panneau à une JFrame..., tout fonctionne trés bien mais seulement si j'utilise un JPanel comme conteneur.

    Merci de répondre à cette question toute simple.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    C'est normal, un JPanel étant un JComponent opaque, c'est à dire que l'intégralité de son background est dessiné. Alors qu'un JComponent n'a pas forcément tout son background rempli.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut
    Merci pour la réponse.

    Mais que veux-tu dire par "pas forcement"? Comment doit-on faire pour dessiner sont background?

  4. #4
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    je crois qu'il te faudra redéfinir la méthode isOpaque() pour qu'elle retourne true

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par herch Voir le message
    je crois qu'il te faudra redéfinir la méthode isOpaque() pour qu'elle retourne true
    Heu... Il suffit d'appeler setOpaque(true)...


    Mais il faut bien comprendre la notion de base entre ces deux composants : JComponent est destiné à représenter le type de base, à adapter selon nos besoin, alors que JPanel est destiné à contenir d'autre composants...

    Il faudrait connaitre l'objectif de ta composant Panneau pour choisir le type de la classe parente

    a++

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,

    Mais il faut bien comprendre la notion de base entre ces deux composants : JComponent est destiné à représenter le type de base, à adapter selon nos besoin, alors que JPanel est destiné à contenir d'autre composants...

    Il faudrait connaitre l'objectif de ta composant Panneau pour choisir le type de la classe parente

    a++
    Ce n'est q'un simple teste, donc ici je n'ai pas d'objectif particulier, ci ce n'est de comprendre pourquoi utiliser l'un et pas l'autre.

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. Différence entre Jpanel, JFrame, Frame, Panel
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 12/06/2006, 22h51
  3. Différence entre TCP, UDP, ICMP
    Par GliGli dans le forum Développement
    Réponses: 1
    Dernier message: 13/09/2002, 08h25
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo