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 :

Changer le couleur du JPanel


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Changer le couleur du JPanel
    Bonjour,

    Je souhaite faire en sorte que lorsque je clique avec la souris à l'intérieur de la fenêtre, je puisse changer la couleur du JPanel.

    Là où ça coince, c'est comment accéder dans la classe Listener, à l'objet instancié dans le main ?

    La classe Main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /**
         * @param args
         */
        public static void main(String[] args) 
        {
            Fenetre_princ fen_p= new Fenetre_princ();
     
        }
    La classe Fenetre_princ pour la génération de la fenêtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        private JButton bout1 =new JButton("bouton n1");
        private JPanel panel=new JPanel();
        public  Fenetre_princ() 
        {
            this.setTitle("FENETRE PRINCIPALE");
            this.setSize(300, 200);
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.setVisible(true);
            panel.add(bout1);
            this.addMouseListener(new ListenerSouris());
            panel.setBackground(Color.PINK);
            this.setContentPane(panel);
     
        }
    La classe pour l'écouteur
    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 ListenerSouris implements MouseListener {
     
        public void mouseClicked(MouseEvent e) 
        {
        }
     
        public void mouseEntered(MouseEvent e) 
        {
     
        }
     
        public void mouseExited(MouseEvent e) 
        {
        }
     
        public void mousePressed(MouseEvent e) {
        }
     
        @Override
        public void mouseReleased(MouseEvent e) {
        }
    Merci d'avance pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Électro-mécano-informaticien à ses heures
    Inscrit en
    Août 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Électro-mécano-informaticien à ses heures

    Informations forums :
    Inscription : Août 2010
    Messages : 95
    Points : 55
    Points
    55
    Par défaut reponse
    Bonjour a toi,
    le code à utilisé est à mettre dans la méthode mouseClicked.
    Mais là, tout dépend de ce que tu veux faire : à chaque clique une couleur aléatoire est afficher ou un menu apparait et tu peux choisir la couleur?
    Pour un objet JPanel il me semble qu'il y a une méthode setBackgroundColor que tu peux utiliser pour changer la couleur d'arrière-plan.

  3. #3
    Membre du Club
    Profil pro
    Électro-mécano-informaticien à ses heures
    Inscrit en
    Août 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Électro-mécano-informaticien à ses heures

    Informations forums :
    Inscription : Août 2010
    Messages : 95
    Points : 55
    Points
    55
    Par défaut reponse 2
    Désolé, car je crois que je n'ais pas répondu a ta question.....
    Dans ta classe principale où tu déclare ton objet JPanel tu lui a attribué le mot clé private, change ça en public et l'objet sera accessible en-dehors de cette classe.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Passe tout simplement l'information via le constructeur de ton listener:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new ListenerSouris(panel)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class ListenerSouris implements MouseListener {
       private JPanel panel;
       public ListenerSouris(Jpanel panel){
           this.panel=panel;
       }
       public void mouseClicked(MouseEvent e) {
           panel.xxxxx();
       }

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Passe tout simplement l'information via le constructeur de ton listener:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new ListenerSouris(panel)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class ListenerSouris implements MouseListener {
       private JPanel panel;
       public ListenerSouris(Jpanel panel){
           this.panel=panel;
       }
       public void mouseClicked(MouseEvent e) {
           panel.xxxxx();
       }


    c une solution qui répond à mon problème ,merci
    cependant , cette méthode à un travers qui est que il faudra passer en parametres autant de Fields que dont on a besoin .

    une autre solution est de faire de chaque classe son propre écouteur
    ainsi , les fields seront accessibles pour les méthodes implémentées avec les interfaces des listeners

  6. #6
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Citation Envoyé par tiloup367 Voir le message
    Dans ta classe principale où tu déclare ton objet JPanel tu lui a attribué le mot clé private, change ça en public et l'objet sera accessible en-dehors de cette classe.
    Oh surtout pas...


    une autre solution est de faire de chaque classe son propre écouteur
    ainsi , les fields seront accessibles pour les méthodes implémentées avec les interfaces des listeners
    heu ?
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par reda_lulu Voir le message
    c une solution qui répond à mon problème ,merci
    cependant , cette méthode à un travers qui est que il faudra passer en parametres autant de Fields que dont on a besoin .
    Ou tu passe la fenêtre en paramètre et tu met des accesseurs sur la fenetre...

Discussions similaires

  1. Changer la couleur d'un JPanel à partir d'un bouton d'une autre classe
    Par ROUGE87 dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 19/05/2011, 18h31
  2. Réponses: 5
    Dernier message: 17/05/2007, 14h28
  3. Changer la couleur d'un JPanel, ca marche po :'(
    Par heider dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/02/2006, 15h50
  4. Changer la couleur de fond de l'écran
    Par tnk dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 19/01/2003, 01h37
  5. Changer les couleurs de la palette avec du RGB
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 11
    Dernier message: 13/01/2003, 08h55

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