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 :

Problème de dimension d'un bouton


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut Problème de dimension d'un bouton
    Bonjour

    Débutant en java swing, actuellement, je cherche à mettre en place une interface graphique de type messagerie instantanée...

    Je suis actuellement entrain de créer ma fenêtre d'accueil...

    C'est la que mon problème survient... En effet, je n'arrive pas à redimensionner mes JButton, mes JTextField et mon ImageIcon...

    J'ai essayé en faisant un setBounds(...);
    Mais la taille ne change pas, peut-être que je l'ai mal placé!

    La méthode est-elle bonne?
    Sinon connaissez vous d'autres méthodes efficaces pour ce genre de problème?

    Voici mon code, classe Fenetre :
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    import javax.swing.*;
     
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
     
    public class Fenetre extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	private Fond maFenetre;
    	private Image fondecran;
    	private ImageIcon imagePerso;
    	private JMenuBar mainMenu;
    	private JMenu menuFichier, sousMenu, menuContact, menuAction, envoyer,menuOutils, menuAide;
    	private JMenuItem deconnexion, enligne, oqp, abs, drdm, autel, pm, ald;
    	private JMenuItem fermer;
    	private JMenuItem ajoutCont, suprCont;
    	private JMenuItem envtext, envson, envvid, pseudo, pp, map, mip, guide,envMail, credits;
    	private JToolBar menuTool;
    	private JButton bouton;
    	private JTextField pseudonyme, frasePerso;
     
    	public Fenetre() {
    		setTitle(" aMsky ");
    		setIconImage(Toolkit.getDefaultToolkit().getImage("src/communication.jpg"));
    		setLocationRelativeTo(null);
    		setExtendedState(this.MAXIMIZED_BOTH);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		initialisation();
    	}
     
    	private void initialisation() {
    		mainMenu = new JMenuBar();
    		menuFichier = new JMenu(" Fichier ");
    		sousMenu = new JMenu("Statut");
    		mainMenu.add(menuFichier);
    		deconnexion = new JMenuItem("Se déconnecter");
    		enligne = new JMenuItem("En ligne");
    		oqp = new JMenuItem("Occupé(e)");
    		abs = new JMenuItem("Absent(e)");
    		drdm = new JMenuItem("De retour dans une minute");
    		autel = new JMenuItem("Au téléphone");
    		pm = new JMenuItem("Parti(e) manger");
    		ald = new JMenuItem("A la douche");
     
    		fermer = new JMenuItem("Quitter aMsky");
    		fermer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.exit(0);
    			}
    		});
     
    		menuFichier.add(deconnexion);
    		menuFichier.add(sousMenu);
    		sousMenu.add(enligne);
    		sousMenu.add(oqp);
    		sousMenu.add(abs);
    		sousMenu.add(drdm);
    		sousMenu.add(autel);
    		sousMenu.add(pm);
    		sousMenu.add(ald);
    		menuFichier.add(fermer);
     
    		menuContact = new JMenu(" Contacts ");
    		mainMenu.add(menuContact);
    		ajoutCont = new JMenuItem("Ajouter un contact");
    		suprCont = new JMenuItem("Supprimer un contact");
    		menuContact.add(ajoutCont);
    		menuContact.add(suprCont);
     
    		menuAction = new JMenu(" Actions ");
    		JMenuItem envoyerFichier = new JMenuItem("Envoyer un message instantanné");
    		envoyer = new JMenu("Envoyer");
    		JMenuItem dcw = new JMenuItem("Démarrer une conversion webcam");
    		mainMenu.add(menuAction);
    		envtext = new JMenuItem("Envoyer un fichier texte");
    		envson = new JMenuItem("Envoyer un fichier audio");
    		envvid = new JMenuItem("Envoyer un fichier video");
    		menuAction.add(envoyerFichier);
    		menuAction.add(envoyer);
    		envoyer.add(envtext);
    		envoyer.add(envson);
    		envoyer.add(envvid);
    		menuAction.add(dcw);
     
    		menuOutils = new JMenu(" Outils ");
    		pseudo = new JMenuItem("Modifier son pseudo");
    		pp = new JMenuItem("Modifier sa phrase perso");
    		map = new JMenuItem("Modifier l'arrière plan");
    		mip = new JMenuItem("Modifier l'image perso");
    		mainMenu.add(menuOutils);
    		menuOutils.add(pseudo);
    		menuOutils.add(pp);
    		menuOutils.add(map);
    		menuOutils.add(mip);
     
    		menuAide = new JMenu(" ? ");
    		guide = new JMenuItem("Guide utilisateur");
    		envMail = new JMenuItem("Contacter l'équipe de développement");
    		credits = new JMenuItem("A propos de ");
    		mainMenu.add(menuAide);
    		menuAide.add(guide);
    		menuAide.add(envMail);
    		menuAide.add(credits);
     
    		setJMenuBar(mainMenu);
    		setContentPane(construirePanel());
    	}
     
    	private Fond construirePanel() {
    		maFenetre = new Fond();
    		maFenetre.setLayout(new BorderLayout());
    		fondecran = Toolkit.getDefaultToolkit().getImage("src/aMsky.jpg");
     
    		imagePerso = new ImageIcon("src/icone-aMsky.jpg");
    		ImageIcon imgPerso = new ImageIcon(imagePerso.getImage().getScaledInstance(125, 135, Image.SCALE_DEFAULT));
    		bouton = new JButton(imgPerso);
    		pseudonyme = new JTextField("Jason");
    		frasePerso = new JTextField("Salut les copains!!");
    		menuTool = new JToolBar();
    		menuTool.setLayout(new GridLayout(1,15));
    		menuTool.add(bouton);
    		menuTool.add(pseudonyme);
    		menuTool.add(frasePerso);
     
    		maFenetre.add(menuTool, BorderLayout.PAGE_START);
    		maFenetre=this.connexionbdd();
    		maFenetre.setFond(fondecran);
    		maFenetre.setVisible(true);
    		return maFenetre;
    	}
     
    private Fond connexionbdd(){	
    		String user = "root";
    		String mdp = "jason";
    		String pilote = "com.mysql.jdbc.Driver";
     
    		try{
    			Class.forName(pilote);
    			Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/amsky",user,mdp);
    			Statement s = c.createStatement();
    			ResultSet r = s.executeQuery("SELECT login from contact where contact.contact='gsanz'");
     
    			while(r.next()){
    				final String log = r.getString("login");
    				JButton bouton=new JButton(log);
    				bouton.setBounds(50,50,50,50);
    				bouton.addActionListener(new ActionListener (){
     
    					public void actionPerformed(ActionEvent evt){
    						Fenetre f = new Fenetre();
    						f.show();
    					}
    				});
    				//bouton.setBounds(200,200,250,250);
    				maFenetre.add(bouton);
    						}				
    		}catch (Exception e){
    			System.out.println(e);
            }
    		return maFenetre;
    	}
    }
    classe Fond :
    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
    import javax.swing.*;
    import java.awt.*;
     
     
    public class Fond extends JPanel{
     
    	private static final long serialVersionUID=1;
    	private Image image;
     
     
    	public void paintComponent(Graphics g) {
    		g.drawImage(this.image,0,0,this);
    	}
     
    	public void setFond(Image image){
    		this.image=image;
    	}
    }
    classe aMsky :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class aMsky {
        	public static void main(String args[]){		
        		javax.swing.SwingUtilities.invokeLater(new Runnable(){// Pour lancer l'application on utilise la méthode run()
        			public void run(){
        				Fenetre f=new Fenetre();
        				f.setVisible(true);
    				}
    	   	 	});
        	}
    }

    Merci pour votre attention

    A bientot

  2. #2
    Membre éclairé Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Le Layout par défaut est le FlowLayout, avec lequel tu ne peux pas fixer de valeurs par un setBounds. Donc si tu ne spécifies pas de Layout, alors, le flowLayout est mis en place, et donc l'appel à la méthode setBounds ne fait rien.

    Il te faut : Soit enlever tout Layout par la méthode setLayout(null);
    L'avantage étant que tu places tes composants facilement, l'inconvénient que si l'utilisateur redimensionne la fenêtre, les proportionnalités ne sont pas conservées.
    Soit, utiliser un autre type de Layout. Tu as des Layout dans la librairie standard : BorderLayout, GridBagLayout.... ou bien, tu utilises un JAR externe qui s'occupe exprès de ça : personnellement, j'aime bien TableLayout, simple, et relativement efficace. Tu l'ajoutes dans le classpath pour pouvoir utiliser ses méthodes.

    Voilà, j'espère t'avoir aidé, bonne soirée ;-)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut
    Citation Envoyé par Balbuzard Voir le message
    Le Layout par défaut est le FlowLayout, avec lequel tu ne peux pas fixer de valeurs par un setBounds. Donc si tu ne spécifies pas de Layout, alors, le flowLayout est mis en place, et donc l'appel à la méthode setBounds ne fait rien.

    Il te faut : Soit enlever tout Layout par la méthode setLayout(null);
    L'avantage étant que tu places tes composants facilement, l'inconvénient que si l'utilisateur redimensionne la fenêtre, les proportionnalités ne sont pas conservées.
    Soit, utiliser un autre type de Layout. Tu as des Layout dans la librairie standard : BorderLayout, GridBagLayout.... ou bien, tu utilises un JAR externe qui s'occupe exprès de ça : personnellement, j'aime bien TableLayout, simple, et relativement efficace. Tu l'ajoutes dans le classpath pour pouvoir utiliser ses méthodes.

    Voilà, j'espère t'avoir aidé, bonne soirée ;-)
    Merci pour ton attention et ta réponse qui m'a beaucoup aidée

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    A noter toutefois que le NullLayout est en général une mauvaise pratique et pose des problèmes de portabilité des interfaces.

    Il vaut mieux gérer les boutons via un layout avancé de type FormLayout, MigLayout ou encore GridbagLayout.

    Ensuite tout dépend de l'interface que tu veux réaliser.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut Problème de placement de bouton(GridBagLayout)
    Bonjour,

    A présent je cherche à placer mes différents boutons dans ma fenêtre à l'aide d'un GridBagLayout.
    Le problème est que je ne sais pas comment on l'utilise et que je n'ai pas trouvé de réponse pertinente sur le web.

    Merci de votre aide

    @+

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut Encore des problèmes
    Salut

    J'ai lu le document que tu m'as donné en lien, mais je ne m'en sort toujours pas...

    Je voudrais que mes boutons soient placés simplement les uns sous les autres et rien de plus.

    Pour cela j'incrémente mon gridy à chaque bouton, mais ça ne les affiche toujours pas les uns sous les autres (les 2 premiers sont sur la même ligne et le troisième sur la ligne en desous)...

    Voici mon code :

    class aMsky : (lance mon application)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class aMsky {
        	public static void main(String args[]){		
        		javax.swing.SwingUtilities.invokeLater(new Runnable(){// Pour lancer l'application on utilise la méthode run()
        			public void run(){
        				Fenetre f=new Fenetre();
        				f.setVisible(true);
    				}
    	   	 	});
        	}
    }

    class Fond : (me permet de créer un panel avec un fond d'écran)
    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
    import javax.swing.*;
    import java.awt.*;
     
     
    public class Fond extends JPanel{
     
    	private static final long serialVersionUID=1;
    	private Image image;
     
     
    	public void paintComponent(Graphics g) {
    		g.drawImage(this.image,0,0,this);
    	}
     
    	public void setFond(Image image){
    		this.image=image;
    	}
    }

    class Fenetre : (le problème est ici ...)
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    import javax.swing.*;
     
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
     
    public class Fenetre extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	private Fond maFenetre;
    	private Image fondecran;
    	private ImageIcon imagePerso;
    	private JMenuBar mainMenu;
    	private JMenu menuFichier, sousMenu, menuContact, menuAction, envoyer,menuOutils, menuAide;
    	private JMenuItem deconnexion, enligne, oqp, abs, drdm, autel, pm, ald;
    	private JMenuItem fermer;
    	private JMenuItem ajoutCont, suprCont;
    	private JMenuItem envtext, envson, envvid, pseudo, pp, map, mip, guide,envMail, credits;
    	private JToolBar menuTool;
    	private JButton bouton;
    	private JTextField pseudonyme, frasePerso;
     
    	public Fenetre() {
    		setTitle(" aMsky ");
    		setIconImage(Toolkit.getDefaultToolkit().getImage("src/communication.jpg"));
    		setLocationRelativeTo(null);
    		setExtendedState(this.MAXIMIZED_BOTH);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		initialisation();
    	}
     
    	private void initialisation() {
    		mainMenu = new JMenuBar();
    		menuFichier = new JMenu(" Fichier ");
    		sousMenu = new JMenu("Statut");
    		mainMenu.add(menuFichier);
    		deconnexion = new JMenuItem("Se déconnecter");
    		enligne = new JMenuItem("En ligne");
    		oqp = new JMenuItem("Occupé(e)");
    		abs = new JMenuItem("Absent(e)");
    		drdm = new JMenuItem("De retour dans une minute");
    		autel = new JMenuItem("Au téléphone");
    		pm = new JMenuItem("Parti(e) manger");
    		ald = new JMenuItem("A la douche");
     
    		fermer = new JMenuItem("Quitter aMsky");
    		fermer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.exit(0);
    			}
    		});
     
    		menuFichier.add(deconnexion);
    		menuFichier.add(sousMenu);
    		sousMenu.add(enligne);
    		sousMenu.add(oqp);
    		sousMenu.add(abs);
    		sousMenu.add(drdm);
    		sousMenu.add(autel);
    		sousMenu.add(pm);
    		sousMenu.add(ald);
    		menuFichier.add(fermer);
     
    		menuContact = new JMenu(" Contacts ");
    		mainMenu.add(menuContact);
    		ajoutCont = new JMenuItem("Ajouter un contact");
    		suprCont = new JMenuItem("Supprimer un contact");
    		menuContact.add(ajoutCont);
    		menuContact.add(suprCont);
     
    		menuAction = new JMenu(" Actions ");
    		JMenuItem envoyerFichier = new JMenuItem("Envoyer un message instantanné");
    		envoyer = new JMenu("Envoyer");
    		JMenuItem dcw = new JMenuItem("Démarrer une conversion webcam");
    		mainMenu.add(menuAction);
    		envtext = new JMenuItem("Envoyer un fichier texte");
    		envson = new JMenuItem("Envoyer un fichier audio");
    		envvid = new JMenuItem("Envoyer un fichier video");
    		menuAction.add(envoyerFichier);
    		menuAction.add(envoyer);
    		envoyer.add(envtext);
    		envoyer.add(envson);
    		envoyer.add(envvid);
    		menuAction.add(dcw);
     
    		menuOutils = new JMenu(" Outils ");
    		pseudo = new JMenuItem("Modifier son pseudo");
    		pp = new JMenuItem("Modifier sa phrase perso");
    		map = new JMenuItem("Modifier l'arrière plan");
    		mip = new JMenuItem("Modifier l'image perso");
    		mainMenu.add(menuOutils);
    		menuOutils.add(pseudo);
    		menuOutils.add(pp);
    		menuOutils.add(map);
    		menuOutils.add(mip);
     
    		menuAide = new JMenu(" ? ");
    		guide = new JMenuItem("Guide utilisateur");
    		envMail = new JMenuItem("Contacter l'équipe de développement");
    		credits = new JMenuItem("A propos de ");
    		mainMenu.add(menuAide);
    		menuAide.add(guide);
    		menuAide.add(envMail);
    		menuAide.add(credits);
     
    		setJMenuBar(mainMenu);
    		setContentPane(construirePanel());
    	}
     
    	private Fond construirePanel() {
    		maFenetre = new Fond();
    		maFenetre.setLayout(new BorderLayout());
    		fondecran = Toolkit.getDefaultToolkit().getImage("src/aMsky.jpg");
     
    		imagePerso = new ImageIcon("src/icone-aMsky.jpg");
    		ImageIcon imgPerso = new ImageIcon(imagePerso.getImage().getScaledInstance(125, 135, Image.SCALE_DEFAULT));
    		bouton = new JButton(imgPerso);
    		pseudonyme = new JTextField("Jason");
    		frasePerso = new JTextField("Salut les copains!!");
    		menuTool = new JToolBar();
    		menuTool.setLayout(new GridLayout(1,15));
    		menuTool.add(bouton);
    		menuTool.add(pseudonyme);
    		menuTool.add(frasePerso);
     
    		maFenetre.add(menuTool, BorderLayout.PAGE_START);
    		maFenetre=this.connexionbdd();
    		maFenetre.setFond(fondecran);
    		maFenetre.setVisible(true);
    		return maFenetre;
    	}
     
    private Fond connexionbdd(){	
    		String user = "root";
    		String mdp = "jason";
    		String pilote = "com.mysql.jdbc.Driver";
     
    		try{
    			Class.forName(pilote);
    			Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/amsky",user,mdp);
    			Statement s = con.createStatement();
    			ResultSet r = s.executeQuery("SELECT login from contact where contact.contact='gsanz'");
    			int x=0;
    			int y=0;
    			while(r.next()){
    				final String log = r.getString("login");
    				JButton bouton=new JButton(log);
    				bouton.setBounds(50,50,50,50);
    				bouton.addActionListener(new ActionListener (){
     
    					public void actionPerformed(ActionEvent evt){
    						Fenetre f = new Fenetre();
    						f.setVisible(false);
    					}
    				});
    				GridBagLayout gbl = new GridBagLayout();
    				GridBagConstraints gbc=new GridBagConstraints();
    				Container interieur = getContentPane();
    			    interieur.setLayout(gbl);
     
     
    		        gbc.gridx = x;
    		        gbc.gridy = y;
    		        //gridwidth=2;
    		        //gridheight2;
    		        interieur.add(bouton,gbc);
     
    		        y=y+1;
                    this.getPreferredSize(); 
    				//interieur.add(bouton);
    				maFenetre.add(interieur,BorderLayout.CENTER);
    			}				
    		}catch (Exception e){
    			System.out.println(e);
            }
    		return maFenetre;
    	}
    }
    Merci de votre aide

    @+

  8. #8
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    A la limite pour ça tu peux utiliser un BoxLayout vertical
    http://java.developpez.com/faq/gui/?...QUE_layout_box

  9. #9
    Membre éclairé Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Salut,

    J'ai pas tout lu dans ton code, donc désolé si jamais je réponds un peu à côté.

    Le GridBaglayout est je pense l'un des plus compliqués de tous les Layout, alors que tu peux faire ce qu'il fait avec d'autre LayoutManager.

    Par exemple, TableLayout te permets de placer tes composants les uns à la suite des autres, de manière assez simple, d'autant plus que tu lui demandes pas des choses super compliquées.

    Tu télécharges le JAR, tu le copies dans ton projet, sous Eclipse, tu cliques droit sur ton projet, build Path, configure build path, add JAR. Ensuite, dans la classe qui doit utiliser les méthodes de TableLayout, tu importes les classes utiles.

    Plus de renseignements en suivants ces liens : http://java.sun.com/products/jfc/tsc...s/tablelayout/ ou bien le site officiel, bien fait avec des tutoriels : https://tablelayout.dev.java.net/

    Voilà, bon courage pour la suite ;-)

    EDIT : Si t'as encore des soucis, je pourrais te filer des bouts de codes :-)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut Redimensionner un bouton
    Salut

    Tout d'abord merci pour vos conseils précieux...;j'ai enfin réussi à placé mes boutons comme je le désirais...
    J'ai utilisée un BoxLayout, cependant, il me semble que je ne peux plus redimensionner mes boutons cette fois ci, non? car ceux-ci sont contenus dans un tableau vertical...
    Le problème est qu'ils prennent automatiquement la taille de leur contenu alors que je voudrais qu'ils soient tous de la même taille.

    Avez vous une idée?

    Merci encore et à bientôt

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut
    Citation Envoyé par Drogba11 Voir le message
    Salut

    Tout d'abord merci pour vos conseils précieux...;j'ai enfin réussi à placé mes boutons comme je le désirais...
    J'ai utilisée un BoxLayout, cependant, il me semble que je ne peux plus redimensionner mes boutons cette fois ci, non? car ceux-ci sont contenus dans un tableau vertical...
    Le problème est qu'ils prennent automatiquement la taille de leur contenu alors que je voudrais qu'ils soient tous de la même taille.

    Avez vous une idée?

    Merci encore et à bientôt
    Désolé pour les fautes d'orthographes

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut
    Bonjour

    C'est bon j'ai trouvé la solution, j'ai utilisé les méthodes setPreferredSize() et setMaximumSize()
    Merci

Discussions similaires

  1. Problème avec Goto pour un bouton de menu
    Par Klotian dans le forum Flash
    Réponses: 3
    Dernier message: 26/05/2006, 17h49
  2. Réponses: 1
    Dernier message: 09/05/2006, 15h02
  3. Réponses: 11
    Dernier message: 03/03/2006, 15h36
  4. [Débutant] Problème pour écrire dans un bouton
    Par Paulinho dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 06/01/2006, 11h45
  5. [GridBagLayout] Problème de dimension pour un JScrollPane
    Par cmoa59 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 26/07/2005, 11h58

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