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