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 :

BoxLayout et Glue (marche pas !)


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 16
    Par défaut [Résolu] BoxLayout et Glue (marche pas !)
    Bonjour à tous,

    Voila, je doit faire un petit panel d'identification avec login mot de passe et bouton de connexion...

    Pour bien centrer tout ça et que ça garde les bonnes proportionnalités lors du redimensionnement, j'ai pensé au BoxLayout et au Box.createGlue().
    Bon, j'ai donc fait un petit
    setLayout( new BoxLayout(jpCentre, BoxLayout.Y_AXIS));
    sur mon petit panel et j'ai mis des HorizontalBox a l'intérieur. Ensuite j'ai mis plein de createHorizontalGlue() et createVerticalGlue() de partout...

    Mais je sais pas pourquoi, c'est comme si elles n'y étaient pas : et tout mes JLabel et JTextField ont des tailles énormes


    Voila mon 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    public class JPanelLogin extends javax.swing.JPanel
    {
        private JPanel jpCentre;
        private JLabel jlLogin;
        private JLabel jlMdp;
        private JTextField jtfLogin;
        private JPasswordField jpfMdp;
        private JButton jbConnexion;
     
        public JPanelLogin()
        {
            initComponents();
     
            jpCentre = new JPanel();
            jpCentre.setBackground( Color.GREEN );
            jpCentre.setMaximumSize( new Dimension (400,300) );
            jpCentre.setPreferredSize( new Dimension (400,300) );
            jpCentre.setSize( jpCentre.getPreferredSize() );
            jpCentre.setLayout( new BoxLayout(jpCentre, BoxLayout.Y_AXIS));
     
            jlLogin = new JLabel("Login :");
            jlLogin.setFont(new java.awt.Font("Tahoma", 0, 18));
     
            jlMdp = new JLabel("Mot de passe :");
            jlMdp.setFont(new java.awt.Font("Tahoma", 0, 18));
     
            jtfLogin = new JTextField();
            jtfLogin.setFont(new java.awt.Font("Tahoma", 0, 18));
     
            jpfMdp = new JPasswordField();
            jpfMdp.setFont(new java.awt.Font("Tahoma", 0, 18));
     
            jbConnexion = new JButton("Connexion");
            jbConnexion.setFont(new java.awt.Font("Tahoma", 0, 18));
     
     
            jpCentre.add( Box.createVerticalGlue() );
     
     
            Box hBox1 = Box.createHorizontalBox();
            hBox1.add( Box.createHorizontalGlue() );
            hBox1.add( jlLogin );
            hBox1.add( Box.createHorizontalGlue() );
            hBox1.add( jtfLogin );
            hBox1.add( Box.createHorizontalGlue() );
     
            jpCentre.add( hBox1 );
            jpCentre.add( Box.createVerticalGlue() );
     
            Box hBox2 = Box.createHorizontalBox();
            hBox2.add( Box.createHorizontalGlue() );
            hBox2.add( jlMdp);
            hBox2.add( Box.createHorizontalGlue() );
            hBox2.add( jpfMdp );
            hBox2.add( Box.createHorizontalGlue() );
     
            jpCentre.add( hBox2 );
            jpCentre.add( Box.createVerticalGlue() );
     
            jpCentre.add( jbConnexion );
            jpCentre.add( Box.createVerticalGlue() );
     
            add( jpCentre );
     
            setSize( getPreferredSize() );
        }
    rq: j'ai remarqué que ce sont les JTextField qui s'étalent au maximum comme les "glue" mais sont prioritaires, comment enlever ca?

    rq : si j'ai deux panel, c'est parceque jPanelCentre doit être un petit carré situé au centre de la page...c'est d'aielleurs lui qui est en BoxLayout...

    et une petite photo :
    [img=http://img77.imageshack.us/img77/7408/sanstitrekv3.th.jpg]


    Bon, je sens le truc très con, parce que si je remplace les "Glue" par des "Strut" ca marche (mais c'est pas dynamique) et, j'arrive aussi ailleurs (dans une barre de menu) à faire marcher ces "Glue", mais là...

    Bon, j'espère que vous pourrez me filer un coup de main.

    Merci
    A bientôt

    PS : j'utilise Netbeans 5.5.1 car je travail avec Hibernate qui n'est pas compatible avec le 6.


    [EDITION]
    Il faut utiliser le .setMaximumSize() et le .setMinimumSize() .
    [/EDITION]

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    setPreferredSize sur tes jTextArea?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 16
    Par défaut
    Citation Envoyé par merill Voir le message
    setPreferredSize sur tes jTextArea?
    Non, le preferedsize ne marche pas, il faut limité la taille... pour que le textfield ne s'étale pas a fond

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 16
    Par défaut Résolution
    J'ai finalement trouvé une solution:

    montextField.setMaximumSize( new Dimention( largeur, hauteur) );

    Voili voilou...

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    bien joué
    maintenant met [RESOLU]

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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