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

AWT/Swing Java Discussion :

Aligner des labels


Sujet :

AWT/Swing Java

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Aligner des labels
    Bonsoir,
    J'ai une fenêtre d'eutentification composée de deux JLabels ("Login :" et "Password :"), d'un JTextField et d'un JPasswordField et d'un JButton pour valider. Ce que je veux faire c'est aligner les deux zones de texte ainsi que les JLabels pour qu'ils se terminent aux même point.

    Une idée sur le Layout à utiliser ?

    Le 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
    22
     
    JInternalFrame fr = new JInternalFrame("Authentification", false, true, false, false);
    fr.setBounds(250, 150, 300, 130);
    JLabel l1 = new JLabel("Login :");
    JTextField tf = new JTextField();
    tf.setPreferredSize(new Dimension(120, 20));
    JLabel l2 = new JLabel("Password :");
    JPasswordField pf = new JPasswordField();
    pf.setPreferredSize(new Dimension(120, 20));
    JButton b = new JButton("Valider");
     
    JPanel p1 = new JPanel();
    p1.add(l1);
    p1.add(tf);
    JPanel p2 = new JPanel();
    p2.add(l2);
    p2.add(pf);
    JPanel p3 = new JPanel();
    p3.add(b);
    fr.add(p1, BorderLayout.NORTH);
    fr.add(p2, BorderLayout.CENTER);
    fr.add(p3, BorderLayout.SOUTH);
    Vous remarquez que j'ai utilisé un JBorderLayout, ça résulte ceci :


  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Salut,

    Oui tu peux faire ça très facilement en utilisant un GridLayout, c'est comme un tableau en fait, et pour ce que tu cherche à faire c'est l'idéal je pense

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JPanel p1 = new JPanel(new GridLayout(2,2));
    p1.add(l1);
    p1.add(tf);
    p1.add(l2);
    p1.add(pf);
    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse !

    Le GridLayout n'est pas la solution adéquate à mon problème vu que ça aligne les labels selon la première lettre et non pas la dernière, tu vois ?

    ça donne ceci entre autre :

    Login :
    Password :

    ce que je veux plutôt c'est que le caractére ':' soit au même niveau dans les deux lignes.

    A+

  4. #4
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    GroupLayout depuis java 6.
    Sinon SpringLayout (voir doc).

    Ce sont les seuls (à ma connaissance) qui font exactement ce que tu veux...

  5. #5
    Membre habitué Avatar de nicgando
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 128
    Points : 163
    Points
    163
    Par défaut
    Ou alors GridBagLayout avec un alignement à droite de tes labels

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GridBagConstraints.anchor = GridBagConstraints.EAST
    Pushing the limits ...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Y'a un bon paquet de layouts au final qui savent faire, il suffit juste de savoir les employer correctement...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Pouvez appliquer sur mon code ? Comme ça, le topic sera plus bénéfique.

    Merci !

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par gganizer
    Pouvez appliquer sur mon code ? Comme ça, le topic sera plus bénéfique.

    Merci !
    Étant donné que ça demande pas mal de travail (quand même un petit peu), non...

    Par contre, voici 2 liens qui pourront t'aider :
    How to use GroupLayout
    How to use SpingLayout

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci comme même.

Discussions similaires

  1. Alignement vertical des label et input
    Par chrisdot dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 24/01/2014, 10h10
  2. [Tableaux] Alignement des champs d'un formulaire
    Par jack554 dans le forum Langage
    Réponses: 7
    Dernier message: 15/09/2005, 15h30
  3. Comment aligner des éléments d'un TEdit à droite ?
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 18
    Dernier message: 15/06/2005, 17h46
  4. Réponses: 3
    Dernier message: 26/01/2005, 15h21
  5. [VB6] Des labels qui réagissent à la souris
    Par murielle dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 24/10/2002, 14h19

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