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 :

Quel Layout utiliser ?


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 445
    Points : 139
    Points
    139
    Par défaut Quel Layout utiliser ?
    Bonjour,

    Je voudrais créer un composant graphique de type JPanel pour sélectionner une date et une heure.

    voici 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
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    public class gcDateSelector extends JPanel {
     
        private static int left_margin = 10;
        private static int right_margin = 10;
        private static int top_margin = 10;
        private static int bottom_margin = 10;
        private static int fontSize = 14;
     
        private JComboBox jour = new JComboBox();
        private JComboBox mois = new JComboBox();
        private JComboBox annee = new JComboBox();
        private JComboBox heures = new JComboBox();
        private JComboBox minutes = new JComboBox();
     
     
        public gcDateSelector(String libelle) {
     
            this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
     
            JPanel panelTitre = new JPanel();
            JLabel titre = new JLabel();
            titre.setText(libelle);
            titre.setFont(new Font("Dialog", Font.BOLD, 14));
            panelTitre.setAlignmentX(Component.LEFT_ALIGNMENT);
            panelTitre.add(titre);
     
            for (int i=1; i<10; i++) {jour.addItem("0"+i);}
            for (int i=10; i<32; i++) {jour.addItem(i);}
     
            mois.addItem("Janvier");
            mois.addItem("Février");
            mois.addItem("Mars");
            mois.addItem("Avril");
            mois.addItem("Mai");
            mois.addItem("Juin");
            mois.addItem("Juillet");
            mois.addItem("Août");
            mois.addItem("Septembre");
            mois.addItem("Octobre");
            mois.addItem("Novembre");
            mois.addItem("Décembre");
     
            annee.addItem("2008");
            annee.addItem("2009");
            annee.addItem("2010");
            annee.addItem("2011");
     
            for (int i=0; i<10; i++) {heures.addItem("0"+i);}
            for (int i=10; i<24; i++) {heures.addItem(i);}
     
            for (int i=0; i<10; i++) {minutes.addItem("0"+i);}
            for (int i=10; i<60; i++) {minutes.addItem(i);}
     
            JPanel dd = new JPanel();
            dd.setLayout(new FlowLayout());
            dd.setAlignmentX(Component.LEFT_ALIGNMENT);
            dd.add(jour);
            dd.add(Box.createHorizontalStrut(5));
            dd.add(mois);
            dd.add(Box.createHorizontalStrut(5));
            dd.add(annee);
     
            JPanel hh = new JPanel();
            hh.setLayout(new FlowLayout());
            hh.setAlignmentX(Component.LEFT_ALIGNMENT);
            hh.add(heures);
            hh.add(Box.createHorizontalStrut(5));
            hh.add(minutes);        
     
            this.setBorder(new LineBorder(Color.blue));
     
            this.add(panelTitre);
            this.add(dd);
            this.add(hh);
     
        }
     
    }
    l'image jointe montre ce que ça donne, mais je voudrais que le titre soit centré, et les combobox soient alignées à gauche.
    Or tout est centré, pourtant, j'ai mis des instructions LEFT_ALIGNMENT partout, alors qu'est ce que j'ai oublié ??

    J'avoue que je patauge franchement dans les différents Layout possibles, surtout dans le placement des composants ...

    Merci,

    Nico
    Images attachées Images attachées  

  2. #2
    Membre émérite
    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
    Points : 2 582
    Points
    2 582
    Par défaut
    Pour les alignements du BoxLayout tu as dans le tutorial java de sun Fixing Alignment Problems, ce qui est une forme d'aveu que c'est pas très clair

    Pour t'aider dans tes déboires sur les layouts, je te conseille de mettre provisoirement des bords de différentes couleurs aux panneaux, ainsi tu vois mieux ce qui se passe.

    Les layouts des formulaires sont en général complexes, surtout si en plus on n'est pas à l'aise dans la mécanique intellectuelle ; si tu utilises Netbeans, fais-le avec Matisse, tu gagneras du temps et ce sera beaucoup mieux. Sinon on peut utiliser le SpringLayout, ou encore mieux consulter la page Référencement des "Look And Feel" - Thèmes graphiques sur le forum.

    Si j'ai bien compris, le seul qui pose vraiment problème est le dernier, qui est au milieu alors qu'il devrait être à gauche ?... Je pense que c'est le sous panneau qui est au milieu, tandis que les combobox seraient bien alignées à gauche (mais dans un panneau au milieu )

    Peut être y arriveras-tu simplement en mettant pour ce sous panneau des combobox non pas un FlowLayout, mais un boxlayout horizontal, et en occupant la partie droite avec un glue, poussant ainsi tout le monde sur la gauche.

    Edit: excusez-moi c'est pas Référencement des look and feel mais Référencement des différents layouts !

Discussions similaires

  1. Quel Layout utiliser pour une fenetre simple?
    Par Dazdh dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/04/2009, 19h11
  2. Quel layout utiliser ?
    Par eclesia dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 13/11/2007, 10h18
  3. quel layout utiliser
    Par yasmine* dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 19/01/2007, 20h07
  4. [débutant]Quel Layout utiliser
    Par pingoui dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 16/09/2004, 18h57
  5. Réponses: 2
    Dernier message: 11/07/2002, 09h31

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