Salut j'aurais d'aide pour finaliser mon programme ,j'essaie de faire une authentification au niveau d'un serveur via une interface graphique afin de lancer
la suite du programme si le mot de passe est bon mais j'arrive pas a m'en sortir avec les interfaces graphiques les sockets et le main ,l'interface graphique j'arrive a gérer au niveau des action performed etc mais au niveau du main je sais pas comment gérer les données transmises par l'utilisateur dans l'interface graphique pour les envoyer dans les sockets après de nombreuses modification de code je suis arrivé ici je devrais peut etre faire un thread mais ca fait un bout de temps que j'en ai pas fait ^^:

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
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
 
 
public class Api extends JFrame implements ActionListener{
 
	static String adresse="127.0.0.1";
	static int port =2000;
	private static JTextField tape;
	private JButton k;
	private static String Stock;
	public Api()
	{
 
		Container contenu=getContentPane();
		contenu.setLayout(new FlowLayout());
		setBounds(420,420,420,100);
 
		tape=new JTextField(5);
		contenu.add(tape);
 
		k=new JButton("valider");
		contenu.add(k);
		k.addActionListener(this);
 
		setVisible(true);
	}
 
	public static void main(String args[]) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException
	{
 
		boolean valide=false;
 
		Api n=new Api();
		while(!valide)
		{
		while(Stock==null)
		{
			;
		}
			Socket soc=new Socket(adresse,port);
			OutputStream flux=soc.getOutputStream();
			DataOutputStream pass=new DataOutputStream(flux);
			String envoie = null;
 
			InputStream fluxi=soc.getInputStream();
			DataInputStream entre=new DataInputStream(fluxi);
 
			pass.writeUTF(Stock);
			pass.flush();
 
			valide=entre.readBoolean();
			System.out.println("On vous a renvoyé ce nom"+valide);
 
		if(valide)
		{
		n.setVisible(false);	
		MaFenetre fen=new MaFenetre();//suite du log;
		fen.setVisible(true);
		}
		else
		{
			System.out.println("mauvais");
			n.setVisible(true);
		}
		}
	}
 
 
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
 
		if(e.getSource()==k)
		{	
			Stock=tape.getText();
			System.out.println(Stock);
		}
 
	}
}
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
 
 
import java.io.*;
import java.net.*;
public class Serveur {
 
	public static void main (String args[]) throws IOException
	{
		int PORT=2000;
		ServerSocket sersoc =new ServerSocket(PORT);
		System.out.println("Server activé sur le port"+PORT);
		while(true)
		{
		Socket soc=sersoc.accept();
		String ligne_envoie="fichierararea.dat";
		boolean vrai=true;
		OutputStream out=soc.getOutputStream();
		DataOutputStream flux=new DataOutputStream(out);
		InputStream in=soc.getInputStream();
		DataInputStream renvoie=new DataInputStream(in);
 
		String message=renvoie.readUTF();	
		System.out.println("etape 1"+message);
		if (message.equals("polo"))
		{
			System.out.println("etap 2");
			flux.writeBoolean(vrai);
			flux.flush();
		}
		else System.out.println("rien");
		}
	}
}

PS j'ai trouver un moyen de gérer mon problème c'est pourquoi j'edite mon code mais est ce que c'est la bonne méthode vu que ca marche mais y a t-il une méthode plus conventionnelle ?Mais j'ai encore un autre problème lorsque le mot de passe est faux ,la fenetre reste affiché ce qui est normal mais lorsque je rentre le nouveau mot de passe ça ne lance pas la suite Stock a bien changée de valeur mais au niveau de la Socket c'est comme si on lui envoyait rien en dirait.