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 :

FlowLayout : problème d'alignement


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut [résolu] FlowLayout
    Bonjour,

    J'ai un problème avec l'alignement des composants ajoutés à un panel disposant du FlowLayout.



    Je veux que mes buttons soient alignés à gauche comme sur ce screenshot :



    Le panel :

    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
     
    import java.awt.Cursor;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JPanel;
     
     
    public class IndexMenuPanel extends JPanel
    {
    	JButton titre;
    	ImageIcon ico;
     
     
    	public IndexMenuPanel(String nom, String img)
    	{
    		this.setOpaque(false);
    		titre = new JButton(nom);
    		titre.setContentAreaFilled(false);
    		titre.setOpaque(false);
     
    		titre.addActionListener
    		(
    				new ActionListener() {
    					public void actionPerformed(ActionEvent e) {
    						JButton source = (JButton) e.getSource();
    						System.out.println(source.getText());
    					}
     
    				}
    		); 
     
    		titre.addMouseListener(new MouseAdapter()
    		{
     
    				public void mouseEntered(MouseEvent e)
    				{
    					JButton source = (JButton) e.getSource();
    					source.setContentAreaFilled(true);
    					setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
    				}
    		});
     
    		titre.addMouseListener(new MouseAdapter()
    		{
     
    				public void mouseExited(MouseEvent e)
    				{
    					JButton source = (JButton) e.getSource();
    					source.setContentAreaFilled(false);
    					setCursor(Cursor.getDefaultCursor());
    				}
    		});
     
    		ico = new ImageIcon(img);
    		titre.setIcon(ico);
    		titre.setFont(new Font("",1,16));
    		//titre.setPreferredSize(new Dimension(516,70));
     
    		this.setLayout(new FlowLayout());
    		this.add(titre);
     
    		this.setPreferredSize(new Dimension(750,100));
    	}
    }
    Les panels ajoutés dans le panel ci-dessus :
    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
     
    import java.awt.FlowLayout;
    import java.awt.Image;
     
    import javax.swing.JPanel;
     
     
    public class MenuIndexPanel extends JPanel 
    {
    		IndexMenuPanel menuPanel;
     
    		public MenuIndexPanel()
    		{
     
    			menuPanel = new IndexMenuPanel("Ajouter les dépôts PLF                                                     ", "/usr/share/mlo/exec.png");
    //J'ai ajouté plein d'espace pour pouvoir les aligner à gauche et obtenir la capture numéro 2
    			this.add(menuPanel);
    			menuPanel = new IndexMenuPanel("Mettre à jour son système                                                 ", "/usr/share/mlo/services.png");
    			this.add(menuPanel);
    			menuPanel = new IndexMenuPanel("Envoyer la configuration de son ordinateur                    ", "/usr/share/mlo/ktorrent.png");
    			this.add(menuPanel);
    			menuPanel = new IndexMenuPanel("Installer les polices Windows (arial, time new Roman...)", "/usr/share/mlo/uninstaller.png");
    			this.add(menuPanel);
    			menuPanel = new IndexMenuPanel("Activer et/ou configurer le gestionnaire de sauvegarde  ", "/usr/share/mlo/folder_sync.png");
    			this.add(menuPanel);
     
    			FlowLayout layout = new FlowLayout(FlowLayout.RIGHT);
    			this.setLayout(layout);
    			this.setOpaque(false);
    		}
    }
    J'ai essayé de forcer la taille de chaque boutton -> L'alignement ne change pas

  2. #2
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    Utilise le constructeur de FlowLayout avec comme paramètre l'alignement et passe-lui FlowLayout.LEFT.

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    J'avais aussi essayé avec le left ... c'était encore pire.



  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Met le layout sur le panel avant d'ajouter les sous panels, ça devrait marcher mieux normalement.

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    C'est pas mieux

  6. #6
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    a priori, le probleme ne vient pas de MenuIndexPanel mais de IndexMenuPanel . tu as essayé de créer le FlowLayout de IndexMenuPanel avec le constructeur utilisant FlowLayout.LEFT ?

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

Discussions similaires

  1. [CSS] Problème d'alignement des images
    Par Walabar dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 04/08/2006, 15h42
  2. débutant, problème d'alignement...
    Par celmakie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/04/2006, 21h13
  3. problème d'alignement swing
    Par demonia dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/02/2006, 21h47
  4. Réponses: 1
    Dernier message: 22/12/2005, 11h23
  5. Problème d'alignement
    Par zorely dans le forum Mise en forme
    Réponses: 4
    Dernier message: 09/08/2005, 10h52

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