Bonjour,

Je crée (enfin, j'essaie de créer) un logiciel permettant d'exécuter différentes tâches. Il s'affiche sous forme d'une fenêtre avec un menu et l'on choisit ce que l'on veut faire en cliquant sur l'un des sous-menus (du basique, quoi).

Ce programme fonctionne parfaitement quand je le lance depuis l'IDE (eclipse) mais pas contre le .jar que je crée avec la méthode "export" d'eclipse me pose un problème.

Concrètement, j'ai plusieurs "pages" (qui sont autant de sous-menus à afficher) qui sont des formulaires à renseigner puis à envoyer grâce à un bouton (ActionListener). Comme dit plus haut, cela fonctionne dans eclipse (si je clique sur le bouton, les renseignements sont bien envoyés par mail), par contre depuis le .jar, si je clique sur ce même bouton, rien ne se passe.

Voilà pour la description de mon problème, en espérant avoir été clair (je suis débutant, au fait).

Quelques lignes de code pour y voir plus clair.

Class d'affichage du formulaire :

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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
package com.texte.global;
 
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
 
public class MessageContact {
 
	protected static final String String = null;
 
	public void messageprive(JPanel conteneur) {
 
	conteneur.removeAll();
	conteneur.repaint();
 
        // Information
 
        // Nom
 
        JPanel panelnom = new JPanel();
        panelnom.setPreferredSize(new Dimension(318, 65));
        panelnom.setBackground(Color.white);
        panelnom.setBorder(BorderFactory.createTitledBorder("Nom"));
 
        JTextField nom = new JTextField();
        nom.setPreferredSize(new Dimension(278, 25));
        panelnom.add(nom);
 
        // Prénom
 
        JPanel panelprenom = new JPanel();
        panelprenom.setPreferredSize(new Dimension(318, 65));
        panelprenom.setBackground(Color.white);
        panelprenom.setBorder(BorderFactory.createTitledBorder("Prénom"));
 
        JTextField prenom = new JTextField();
        prenom.setPreferredSize(new Dimension(278, 25));
        panelprenom.add(prenom);
 
        // Objet
 
        JPanel panelobjet = new JPanel();
        panelobjet.setPreferredSize(new Dimension(317, 65));
        panelobjet.setBackground(Color.white);
        panelobjet.setBorder(BorderFactory.createTitledBorder("Objet"));
 
	JComboBox<String> objet = new JComboBox<String>();
	objet.addItem("Sans objet");
	objet.addItem("Requête(s)");
	objet.addItem("Autre(s)"); 	        
	panelobjet.add(objet);
 
        // Adresse électronique personnelle
 
        JPanel panelmailperso = new JPanel();
        panelmailperso.setPreferredSize(new Dimension(318, 65));
        panelmailperso.setBackground(Color.white);
        panelmailperso.setBorder(BorderFactory.createTitledBorder("Votre adresse électronique"));
 
        JTextField mailperso = new JTextField();
        mailperso.setPreferredSize(new Dimension(278, 25));
        panelmailperso.add(mailperso);
 
        // Message
 
        JTextArea message = new JTextArea();
  	message.setWrapStyleWord(true);
        message.setLineWrap(true);
 
	JScrollPane scrollmessage = new JScrollPane(message);
	scrollmessage.setPreferredSize(new Dimension(640, 200));
        scrollmessage.setBackground(Color.white);
	scrollmessage.setBorder(BorderFactory.createTitledBorder("Message"));
	scrollmessage.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
 
	JToolBar barremenu = new JToolBar();
	barremenu.setPreferredSize(new Dimension(640, 30));
        barremenu.setBackground(Color.white);
	barremenu.setFloatable(false);
 
	JButton boutonnormal = new JButton("Normal");
	boutonnormal.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    message.setFont(message.getFont().deriveFont(Font.PLAIN));
	    }
  	});
 
	JButton boutongras = new JButton("Gras");
	boutongras.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    message.setFont(message.getFont().deriveFont(Font.BOLD));
	    }
  	});
 
	JButton boutonitalique = new JButton("Italique");
	boutonitalique.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    message.setFont(message.getFont().deriveFont(Font.ITALIC));
	    }
  	});
 
	JComboBox<String> boutontaillepolice = new JComboBox<String>();
	boutontaillepolice.addItem("12");boutontaillepolice.addItem("13");boutontaillepolice.addItem("14");boutontaillepolice.addItem("15");
	boutontaillepolice.addItem("16");boutontaillepolice.addItem("17");boutontaillepolice.addItem("18");boutontaillepolice.addItem("19");
	boutontaillepolice.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	         String taillepolice = String;
	         Font font = new Font("Arial", Font.PLAIN, 12);
		     taillepolice = (String)boutontaillepolice.getSelectedItem();
		     if (taillepolice == "12")
		     	font = new Font("Arial", Font.PLAIN, 12);
		     if (taillepolice == "13")
		     	font = new Font("Arial", Font.PLAIN, 13);
		     if (taillepolice == "14")
		     	font = new Font("Arial", Font.PLAIN, 14);
		     if (taillepolice == "15")
		     	font = new Font("Arial", Font.PLAIN, 15);
		     if (taillepolice == "16")
		     	font = new Font("Arial", Font.PLAIN, 16);
		     if (taillepolice == "17")
		     	font = new Font("Arial", Font.PLAIN, 17);
		     if (taillepolice == "18")
		     	font = new Font("Arial", Font.PLAIN, 18);
		     if (taillepolice == "19")
		     message.setFont(font);
	        }
  	    });
 
	JComboBox<String> boutoncaracteresspeciaux = new JComboBox<String>();
	boutoncaracteresspeciaux.addItem("à");boutoncaracteresspeciaux.addItem("â");boutoncaracteresspeciaux.addItem("À");
	boutoncaracteresspeciaux.addItem("Â");boutoncaracteresspeciaux.addItem("ç");boutoncaracteresspeciaux.addItem("Ç");
	boutoncaracteresspeciaux.addItem("é");boutoncaracteresspeciaux.addItem("è");boutoncaracteresspeciaux.addItem("ê");
	boutoncaracteresspeciaux.addItem("É");boutoncaracteresspeciaux.addItem("Ê");boutoncaracteresspeciaux.addItem("î");
	boutoncaracteresspeciaux.addItem("ï");boutoncaracteresspeciaux.addItem("Î");boutoncaracteresspeciaux.addItem("ô");
	boutoncaracteresspeciaux.addItem("œ");boutoncaracteresspeciaux.addItem("Ô");boutoncaracteresspeciaux.addItem("Œ");
	boutoncaracteresspeciaux.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    	message.setText(message.getText() + (String)boutoncaracteresspeciaux.getSelectedItem());
	    }
  	});
 
	JComboBox<String> boutonsmiley = new JComboBox<String>();
	boutonsmiley.addItem(" :-) ");
	boutonsmiley.addItem(" :-D ");
	boutonsmiley.addItem(" ;-) ");
	boutonsmiley.addItem(" B-) ");
	boutonsmiley.addItem(" :-( ");
	boutonsmiley.addItem(" :-/ ");
	boutonsmiley.addItem(" :-O ");
	boutonsmiley.addItem(" :-S ");
	boutonsmiley.addItem(" :-X ");
	boutonsmiley.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    	message.setText(message.getText() + (String)boutonsmiley.getSelectedItem());
	    }
  	});
 
	JButton boutoncopier = new JButton("Copier");
	boutoncopier.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    	message.copy();
	    }
	});
 
	JButton boutoncoller = new JButton("Coller");
	boutoncoller.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    	message.paste();
	    }
	});
 
	JButton boutoncouper = new JButton("Couper");
	boutoncouper.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
	    	message.cut();
	    }
	});	  	        
 
	JButton boutoneffacer = new JButton("Effacer le message");
	boutoneffacer.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent arg0) {
  	    message.setText("");
  	    }
  	});
 
	scrollmessage.add(barremenu);
	barremenu.add(boutonnormal);
	barremenu.add(boutongras);
	barremenu.add(boutonitalique);
	barremenu.add(boutontaillepolice);
	barremenu.add(boutoncaracteresspeciaux);
	barremenu.add(boutonsmiley);
	barremenu.add(boutoncopier);
	barremenu.add(boutoncoller);
	barremenu.add(boutoncouper);
	barremenu.add(boutoneffacer);
 
        // Bouton "Envoyer"
 
        JButton sendBouton = new JButton("Envoyer votre message");
        sendBouton.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
        	EnvoiMessageContact envoimessage = new EnvoiMessageContact();
        	envoimessage.mail(objet, nom, prenom, mailperso, message);
           }
        });
 
        // Affichage
 
        conteneur.add(panelnom);
        conteneur.add(panelprenom);
        conteneur.add(panelobjet);
        conteneur.add(panelmailperso);
	conteneur.add(barremenu);
        conteneur.add(scrollmessage);
        conteneur.add(sendBouton);
 
    	conteneur.revalidate();
 
	}
 
}
Class devant permettre l'envoi de ce formulaire par mail :

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
package com.texte.global;
 
import java.util.Properties;
 
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
public class EnvoiMessageContact {
 
	public void mail(JComboBox<String> objet, JTextField nom, JTextField prenom, JTextField mailperso, JTextArea message) {
 
		Properties props = new Properties();
		props.put("mail.smtp.host", "smtp.gmail.com");
		props.put("mail.smtp.socketFactory.port", "465");
		props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.port", "465");
 
		Session session = Session.getDefaultInstance(props,
				new javax.mail.Authenticator() {
				protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("adresse mail de l'expéditeur","son mot de passe");
				}
		});
 
		try {
			Message mail = new MimeMessage(session);
			mail.setFrom(new InternetAddress("adresse mail de l'expéditeur"));
			mail.setRecipients(Message.RecipientType.TO,InternetAddress.parse("adresse mail du destinataire"));
			mail.setSubject((String)objet.getSelectedItem());
			mail.setText("Nom : " + nom.getText() + "\n" + "Prénom : " + prenom.getText() + "\n" +
					  "Adresse électronique de retour : " + mailperso.getText() + "\n\n" + message.getText());
 
			Transport.send(mail);
 
		} catch (MessagingException e) {
			throw new RuntimeException(e);
		}
 
		JOptionPane.showMessageDialog(null, "Votre message a été envoyé", "Information", JOptionPane.INFORMATION_MESSAGE);
	}
}
J'ai beau chercher, je ne trouve pas...

Merci de votre retour. Bonne journée.