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

Agents de placement/Fenêtres Java Discussion :

Un composant sur plusieurs panneaux, impossible ?


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut Un composant sur plusieurs panneaux, impossible ?
    Salut,
    je suis en train de bidouiller avec les CardLayout pour faire des options avancées, et j'aimerais utiliser certains JButton dans les deux panneaux que contient mon JPanel(CardLayout).

    Donc tout bêtement j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Panneau normal
    JPanel normal = new JPanel();
     
    // Panneau Options Avancées
    JPanel optionsAvancees = new JPanel();
    captB = addButton("Enregistrer",imgRec, normal, optionsAvancees, true);
    addB = addButton("Ajout",imgAdd, optionsAvancees, false);
    pausB = addButton("Pause", imgPause, optionsAvancees, false);
    playB = addButton("Lire", imgPlay, normal, optionsAvancees, false);
    waveB = addButton("Valider", imgValid, normal, optionsAvancees, false);
    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
    22
    23
     
    private JButton addButton(String name,ImageIcon icon, JPanel p, boolean state) {
            JButton b = new JButton(name,icon);
            b.addActionListener(this);
            b.setEnabled(state);
    		b.setVerticalTextPosition(AbstractButton.BOTTOM);
    		b.setHorizontalTextPosition(AbstractButton.CENTER);
    		b.setFocusable(false);	
            p.add(b);
            return b;
        }
     
    private JButton addButton(String name,ImageIcon icon, JPanel normal, JPanel oa, boolean state) {
            JButton b = new JButton(name,icon);
            b.addActionListener(this);
            b.setEnabled(state);
    	b.setVerticalTextPosition(AbstractButton.BOTTOM);
    	b.setHorizontalTextPosition(AbstractButton.CENTER);
    	b.setFocusable(false);	
            oa.add(b);
    	normal.add(b);
            return b;
        }
    Et dans le cas ci-dessus,
    Le panneau "OA" ne contient que addB et pausB.
    Le panneau "normal" contient captB, playB et waveB.


    Est-t-il donc possible de mettre un même bouton sur plusieurs panneaux ? Où suis-je obligé d'en créer plusieurs ?

    Merci encore !
    Bastien

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    On ne peut mettre un même bouton simultanément sur plusieurs panneaux.

    Tu peux mettre un bouton sur un panneau, l'enlever de ce panneau là, puis le mettre sur un autre.

    Lorsque on veut proposer la même fonction sur plusieurs boutons, au lieu de mettre un seul bouton partout, on met plusieurs boutons, tous ayant la même Action ou les mêmes listeners.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Comme toujours, merci pour votre réponse rapide et précise.

    Effectivement c'est ce que j'avais fait pour passer au tour du problème, mais c'est assez contraignant...
    Par exemple, au lieu de désactiver un bouton suite à un événement, je suis obligé d'en désactiver autant que de panneaux ou apparaît ce bouton (ou un clone) :s

    Enfin bon, on fait avec ^_^

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Voilà pourquoi gifffftane te parle des Actions.
    Il suffit de modifier l'action partagée par tous les JButton ou JMenu pour que leur état soit modifié d'un seul coup.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Mais si j'ai 23 panneaux contenant le "même" bouton et que je veux le désactiver, je suis obligé de faire setEnabled(false); dans l'Action sur chacun des boutons, donc 23 fois

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Mais non : tu fais le setEnabled sur l'ACTION, une seule et unique fois, et la mécanique interne fera les 23 boutons pour toi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. communication ssh sur plusieurs machine impossible
    Par kirua99 dans le forum Réseau
    Réponses: 2
    Dernier message: 26/01/2015, 17h26
  2. Méthode avec composants sur plusieurs classes
    Par isa911Bis dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 08/09/2011, 17h36
  3. [MouseListener] sur plusieurs composants... GlassPane ?
    Par lilou77 dans le forum Composants
    Réponses: 7
    Dernier message: 05/12/2005, 11h13
  4. [SQL Access] SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2005, 15h00
  5. SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/11/2005, 13h27

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