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 :

Positionnement d'un JLabel dans une Box


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut Positionnement d'un JLabel dans une Box
    Bonjour,

    J'ai un soucis de positionnement d'un JLabel dans un Box horizontal. Voici le code de création :
    Code java : 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
     
    Box vbox = Box.createVerticalBox();
    vbox.add(Box.createVerticalStrut(10));
     
    Box hbox = Box.createHorizontalBox();
    JLabel xmlName = new JLabel("Test");
    hbox.add(Box.createHorizontalStrut(5));
    hbox.add(xmlName);
    vbox.add(hbox);
     hbox = Box.createHorizontalBox();
     
    JTextField xmlName2 = new JTextField("Test" + i);
    hbox.add(Box.createHorizontalStrut(5));
    hbox.add(xmlName2);
    hbox.add(Box.createHorizontalStrut(5));
     
    vbox.add(hbox);
    J'ai essayé de faire un setAlignmentX mais mon JTextField et mon JLabel ne sont pas alignés.

    Vous avez une idée pour résoudre ce soucis ?

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Pourquoi utiliser une Box pour chaque composant ?

    Je n'ai jamais utilisé les Box, alors j'ai fais un petit tour sur la FAQ,
    et il me semble que tu te compliques la vie .

    Quelque chose comme ça te suffirait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Box vbox = Box.createVerticalBox();
    vbox.add(Box.createVerticalStrut(10));
    JLabel xmlName = new JLabel("Test");
    vbox.add(xmlName);
    JTextField xmlName2 = new JTextField("Test" + i);
    vbox.add(xmlName2);
    Libre à toi ensuite de régler les VerticalStrut comme tu veux.

    Bonne chance.

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Ton code fonctionne mais pour ce qui est de l'espacement entre le bord du JFrame et des JTextField n'est pas énorme.

    SInon j'ai toujours le même soucis de positionnement du JLabel

  4. #4
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Pour l'espacement, tu peux utiliser un border comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tonContentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    // Les paramètres sont les dimensions de l'espacement
    Pour l'alignement, aurais tu un screen shot pour que je visualise mieux ton problème ? Merci

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Effectivement cette ligne fonctionne correctement

    Sinon j'ai un soucis de redimensionnement du JTextField et même avec un setSize il en veut pas.

    Pour l'alignement, voici la capture d'écran.

  6. #6
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Dans ton cas, le BoxLayout n'est peut être pas la solution adapté, bien que je ne pense pas qu'un layout soit plus adapté qu'un autre. Seulement, si tu as un problème avec BoxLayout et que tu n'as pas d'impératif, autant en choisir un autre. GridBagLayout est le plus riche et le plus précis, mais en contre partie, il est plus difficile à utiliser. Mais avec une bonne pratique, tu gagneras en liberté de placement et en fonctionnalité sans trop de difficulté.

    Va voir dans la FAQ pour plus d'explication sur GridBagLayout.

    Bonne chance.

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

Discussions similaires

  1. [JLabel]dans une boucle for
    Par scolopendra dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 20/07/2007, 14h19
  2. Linux dans une box
    Par eponyme dans le forum Matériel
    Réponses: 6
    Dernier message: 22/03/2007, 12h58
  3. Affichage d'un JLabel dans une popup (JFrame)
    Par mattyeux dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 05/02/2007, 15h17
  4. Evenements sur des JLabel dans une JList
    Par Tibo dans le forum Composants
    Réponses: 6
    Dernier message: 30/06/2006, 11h06
  5. Positionner précisement plusieurs JPanel dans une JFrame.
    Par RadicalBob dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 13/06/2006, 22h42

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