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

Composants Java Discussion :

Pb JButton dans un JLabel


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut Pb JButton dans un JLabel
    Bonjour,

    je possède une JFrame avec plusieurs composants.
    J'essaie de mettre un JLabel avec des boutons suivants ce code :

    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 barreBouton extends JLabel {
     
    	private static final long serialVersionUID = 1L;
     
    	/* Barre des boutons */
    	//JToolBar maBarre;
     
     
    	/**
             * Constructeur
             *
             */
    	barreBouton() {
    		super();
    		this.setLayout(new BorderLayout());
    		JButton miseAEchelle = new JButton("essai");
    		this.add(miseAEchelle, BorderLayout.WEST);
    		this.setVisible(true);
    	}
    }
    et dans la JFrame, le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // ===== Création de la tool bar =====
    barreBouton labelToolBar = new barreBouton();
    conteneurPrincipal.add(labelToolBar, BorderLayout.NORTH);
    Bizarrement, la JLabel apparait (si je teste par exemple avec un setText) mais le button ne s'affiche pas...
    Comment ca se fait ? quelqu'un a une idée ?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    d'habitude c'est dans des JPanel qu'on met d'autres composants.
    Reprends ton code en remplacant JLabel par JPanel et ca devrait marcher.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Ok, je vais essayer ca (désolé, je connais bien le Java mais pas trop swing encore...)

    merci !

  4. #4
    Membre actif Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Points : 245
    Points
    245
    Par défaut
    Peu-etre un tag resolu ?
    Even the biggest journey, starts with a single step.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Bon alors en fait je ne comprends pas trop ce qui ce passe....

    J'ai voulu essayer avec JPanel, mais aucune méthode add ne permet de lui ajouter des JButton ou autre. Est-ce que qqu'un peut m'indiquer comment faire.

    Autre truc étrange....
    Si je reprends mon listing (du 1er post) et que j'ajoute à la fin
    Alors les boutons apparaissent dans la JLabel....je ne comprends vraiment pas pourquoi....quelqu'un peut m'éclairer ? Merci !

  6. #6
    Membre actif Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Points : 288
    Points
    288
    Par défaut
    Normal, tu donne les attributs du add dans le mauvais ordre, essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class barreBouton extends JPanel 
                 {
     
       barreBouton() 
          {
          this.setLayout(new BorderLayout());
          JButton miseAEchelle = new JButton("essai");
          this.add( BorderLayout.WEST,miseAEchelle); //correction ici
           }
    }

  7. #7
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Salut, c'est bien dans un JPanel que tu dois insérer tes boutons.
    Les JLabel servent en général à mettre du texte, une étiquette devant un JTextField par exemple.

    Le JPanel a bien la méthode add() puisqu'il hérite de la classe Container.
    Contrairement a ce qu'à dit aDamas, la méthode add s'appelle bien comme ceci :
    this.add(miseAEchelle, BorderLayout.WEST);
    Javadoc du JPanel : http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JPanel.html

  8. #8
    Membre actif Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Points : 288
    Points
    288
    Par défaut
    En fait les deux notations sont possibles. Ton code résolu :

    BarreBoutons.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import javax.swing.*;
    import java.awt.*;
     
    public class BarreBoutons extends JPanel
    	{
    	public 	BarreBoutons()
    		{
    		setLayout(new BorderLayout());
    		JButton miseAechelle=new JButton("essai");
    		add(BorderLayout.WEST,miseAechelle);
    		}
    	}
    MyFrames.java
    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
    import javax.swing.*;
    import java.awt.*;
     
    public class MyFrames extends JFrame
    	{
    	public MyFrames()
    		{
    		add(new BarreBoutons());
    		setVisible(true);	
    		pack();
    		}	
     
    	public static void main(String[] argv)
    		{
    		new MyFrames();	
    		} 
    	}
    Ca marche nickel...[/b]

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Impeccable, ca marche nickel !

    Merci à vous tous !!!

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

Discussions similaires

  1. Message dans un JLabel au passage de la souris sur un JButton
    Par thunderfear dans le forum Composants
    Réponses: 1
    Dernier message: 11/06/2010, 17h33
  2. Icon pour pour JButton dans une Jtable + pb colonnes
    Par dim_italia dans le forum Composants
    Réponses: 3
    Dernier message: 22/02/2006, 18h05
  3. Réponses: 8
    Dernier message: 06/12/2005, 14h03
  4. HTML dans un JLabel
    Par ganji dans le forum Composants
    Réponses: 2
    Dernier message: 06/12/2005, 09h56
  5. [JTable] Un JButton dans une cellule
    Par Sarrus dans le forum Composants
    Réponses: 19
    Dernier message: 31/08/2005, 16h29

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