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 :

problème d'alignement avec BoxLayout


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
    Inscrit en
    Décembre 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2003
    Messages : 65
    Par défaut problème d'alignement avec BoxLayout
    bonjour à tous,

    j'ai un problème d'alignement avec le boxLayout et j'aimerais savoir à quoi c'est du :

    j'ai une JFrame utilisant un borderLayout et qui contient en son centre un gros pavé et dans la partie nord plusieurs composant (ici des boutons) que je voudrais aligné à gauche. Le problème est que mes boutons ne le sont pas toujours : dès que j'utilise un JPanel comme sous-panel de la partie nord, mes boutons ne sont plus aligné.

    voici le code explicatif :

    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
    public static void main(String[] args) {
    	JFrame jf = new JFrame();
    	jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	jf.getContentPane().add(creerPanel());
     
    	jf.pack();
    	jf.setVisible(true);
    }
     
    private static JPanel creerPanel() {
    	JPanel jp = new JPanel();
    	jp.setLayout(new BorderLayout());
     
    	/* 1) on traite le nord du panel */
    	JPanel jpNord = new JPanel();
    	jpNord.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
    	jpNord.setLayout(new BoxLayout(jpNord,BoxLayout.PAGE_AXIS));
    	/* 1.1) */
    	JButton btn = new JButton("Le bouton problématique");
    	btn.setAlignmentX(JButton.LEFT_ALIGNMENT); //  LEFT_ALIGNEMENT = 0.0
    	jpNord.add(btn);
    	/* 1.2) */
    	JPanel sousJPanelNord = new JPanel();
    	sousJPanelNord.add(new JButton("Un bouton"));
    	jpNord.add(sousJPanelNord);
    	jp.add(jpNord,BorderLayout.NORTH);
     
    	/* 2) on traite le centre du panel */
    	JTextArea jta = new JTextArea(10,50);
    	jp.add(jta);
     
    	return jp;
    }
    mon bouton "le bouton problématique" n'est pas aligné à gauche comme il se devrait, à contrario de la javadoc!

    merci d'avance
    mobi

  2. #2
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    bonjour,
    pk ne créer un autre jPanel ( "sousJPanelNord" le bien nommé ) juste pour mettre un bouton ? tu peux ajouter les 2 boutons au jPanelNord directement...

  3. #3
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2003
    Messages : 65
    Par défaut
    Citation Envoyé par jojodu31 Voir le message
    bonjour,
    pk ne créer un autre jPanel ( "sousJPanelNord" le bien nommé ) juste pour mettre un bouton ? tu peux ajouter les 2 boutons au jPanelNord directement...
    oui oui bien sur, mais c'est un exemple simplifié de ce que je veux faire. J'ai, en réalité, plusieurs composant dans ce JPanel.

    mobi

  4. #4
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    si tu peux poster une fichier jpg avec ce que tu attends comme résultat je pense que les membres du forum pourront t orienter et te donner des pistes de code pour réaliser ton interface. Parceque là on peut te dire comment faire apparaitre ton bouton mais si tu dois ajouter d autres composants l architecture peut changer

  5. #5
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    oui il faudrait exactement savoir ce que tu veux dans les détails ...

  6. #6
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2003
    Messages : 65
    Par défaut
    le problème n'est pas de trouver comment positionner mon bouton (en le mettant dans un autre JPanel avec un borderlayout, ca marche très bien).

    Mon problème est de comprendre pourquoi ce bouton "bouton problématique" n'est pas calé à gauche :

    je cite la javadoc du boxlayout :

    Similarly, for a vertical layout, BoxLayout attempts to make all components in the column as wide as the widest component. If that fails, it aligns them horizontally according to their X alignments. For PAGE_AXIS layout, horizontal alignment is done based on the leading edge of the component. In other words, an X alignment value of 0.0 means the left edge of a component if the container's ComponentOrientation is left to right and it means the right edge of the component otherwise.
    Pour moi ca signifie que si le container (jpNord) a une orientation de gauche à droite et que le composant ("bouton problématique") à un alignementX à gauche, ce composant est calé à gauche! or ici, mon composant est positionné de telle manière que le bord droit du composant est au centre du container.

    Alors, est-ce moi qui est mal compris la javadoc?


    Autre point pour lequel j'ai besoin de vos lumière : si je rajoute la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	sousJPanelNord.setAlignementX(JPanel.LEFT_ALIGNMENT);
    alors mon bouton problématique est positionné à gauche. Erreur d'effet de bord entre les deux JPanel ou (again) incompréhension de ma part?

    merci d'avance!
    mobi

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

Discussions similaires

  1. Problème avec BoxLayout
    Par d_hazem dans le forum Agents de placement/Fenêtres
    Réponses: 13
    Dernier message: 22/01/2015, 11h24
  2. Problème d'alignement avec IE7
    Par Gizmil dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/01/2008, 11h25
  3. Problème de padding avec text-align:right sous IE
    Par Oluha dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 07/02/2007, 14h18
  4. Problème alignement avec trois div
    Par finalfx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/05/2006, 18h48
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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