Bonjour

Je suis actuellement entrain de réaliser une interface graphique, pour une application de messagerie instantanée.

Je travail actuellement sur la mise en place des actions qui s'effectueront lors des clics sur mes différents boutons.

Débutant en java swing, j'ai du mal à mettre en place ces actions.

Par exemple, j'essaye d'ajouter une String dans un JTextField après avoir cliqué sur un de mes onglets...

Problème, mon résultat de ne veux pas s'afficher

Voici l'endroit ou je test si mon clique s'effectue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
		enligne = new JMenuItem("En ligne");
		enligne.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				statut="( En ligne )";
			}
		});

Voici l'endroit ou j'ajoute le statue au pseudonyme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
JTextField pseudonyme = new JTextField();
		if(statut!="i"){
			pseudonyme = new JTextField("Jason"+statut);
		}else{
			pseudonyme = new JTextField("Jason");
		}




Enfin voici mes 3 classes en entière pour vous donner de quoi réfléchir :

classe aMsky : (main)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
import javax.swing.JFrame;
 
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);
				}
	   	 	});
    	}
}

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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
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 frasePerso,blanc;
	private String statut="i";
 
	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");
		deconnexion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
 
 
		enligne = new JMenuItem("En ligne");
		enligne.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				statut="( 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(135, 125, Image.SCALE_DEFAULT));
		bouton = new JButton(imgPerso);
 
		JTextField pseudonyme = new JTextField();
		if(statut!="i"){
			pseudonyme = new JTextField("Jason"+statut);
		}else{
			pseudonyme = new JTextField("Jason");
		}
		frasePerso = new JTextField("Salut les copains!!");
		menuTool = new JToolBar();
		menuTool.setLayout(new FlowLayout());
 
		Box boxToolbar=Box.createVerticalBox();
		Dimension d = new Dimension(350,30);
		Color bg = new Color(21,187,242);
		pseudonyme.setPreferredSize(d);
		pseudonyme.setBackground(bg);
		Dimension d2 = new Dimension (750,1);
		frasePerso.setPreferredSize(d);
		Color bg1 = new Color(39,215,224);
		menuTool.setBackground(bg1);
		frasePerso.setBackground(bg);
		boxToolbar.add(pseudonyme);
		boxToolbar.add(boxToolbar.createVerticalStrut(30));
		boxToolbar.add(frasePerso);
 
		menuTool.add(bouton);
		menuTool.add(boxToolbar);
		menuTool.addSeparator(d2);
 
		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'");
 
			Box boxLogin=Box.createVerticalBox();
			boxLogin.add(boxLogin.createVerticalStrut(5));
			boxLogin.add(boxLogin.createHorizontalStrut(25));
			Fond pano=new Fond();
			pano.setLayout(new FlowLayout());
			while(r.next()){
				final String log = r.getString("login");
				JButton bouton=new JButton();
 
				bouton.setText(log);	
				bouton.addActionListener(new ActionListener (){
 
					public void actionPerformed(ActionEvent evt){
						Fenetre f = new Fenetre();
						f.setVisible(true);
					}
				});
				Dimension d4 = new Dimension(90,25);
				bouton.setMaximumSize(d4);
				Color bg = new Color(21,187,242);
				bouton.setBackground(bg);
 
				boxLogin.add(bouton);
				boxLogin.add(boxLogin.createVerticalStrut(15));
			}
			pano.add(boxLogin);
			maFenetre.add(pano,BorderLayout.WEST);
 
		}catch (Exception e){
			System.out.println(e);
        }
		return maFenetre;
	}
}

classe Fond : (créé mes 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;
	}
}

Merci de votre soutien


A bientôt