Hello,
Voici un code complet qui marche : (je n'ai pas mis de connexion à une base de données tu feras ca)
import graphic.JListViewer;
public class JListViewerLauncher {
/**
* @param args
*/
public static void main(String[] args) {
new JListViewer();
}
}
package graphic;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import net.ProcessClient;
public class JListViewer extends JFrame {
private static final long serialVersionUID = 1L;
public JList mList;
public JListViewer() {
setSize(200, 200);
setLayout(new FlowLayout());
mList = new JList();
DefaultListModel vDefaultListModel = new DefaultListModel();
vDefaultListModel.addElement("Pouet");
vDefaultListModel.addElement("Pouet");
mList.setModel(vDefaultListModel);
JButton vButton = new JButton("Refresh");
vButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent pE) {
displayDatasFromServer();
}
});
add(mList);
add(vButton);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
private void displayDatasFromServer() {
Thread vThread = new Thread() {
public void run () {
try {
mList.setModel(new ProcessClient().getDatasFromServer());
} catch (Exception e) {
e.printStackTrace();
}
}
};
vThread.start();
}
}
package net;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.SocketException;
import javax.swing.DefaultListModel;
public class ProcessClient {
public DefaultListModel getDatasFromServer() throws Exception {
DefaultListModel vResult = new DefaultListModel();
Socket vClientSocket = new Socket("localhost",3500);
OutputStream vClientOutputStream = vClientSocket.getOutputStream();
InputStream vClientInputStream = vClientSocket.getInputStream();
PrintWriter vOutputPrintWriter = new PrintWriter(vClientOutputStream,true);
BufferedReader vInputBufferedReader = new BufferedReader(new InputStreamReader(vClientInputStream));
String vLineFromServer = null;
//Debbut de la conversation client-serveur
writeLineInPrintWriter(vOutputPrintWriter, "OK");
vLineFromServer = vInputBufferedReader.readLine();
vResult.addElement(vLineFromServer);
writeLineInPrintWriter(vOutputPrintWriter, "OK");
while(vLineFromServer!=null) {
try {
vLineFromServer = vInputBufferedReader.readLine();
vResult.addElement(vLineFromServer);
writeLineInPrintWriter(vOutputPrintWriter, "OK");
} catch (SocketException e) {
// On met vLineFromServer a null pour sortir de la
// boucle si le serveur interromp la connexion
vLineFromServer = null;
e.printStackTrace();
}
}
vClientSocket.close();
return vResult;
}
private void writeLineInPrintWriter(PrintWriter pPrintWriter, String pMessage) {
if (pPrintWriter != null) {
pPrintWriter.write(pMessage + System.getProperty("line.separator"));
pPrintWriter.flush();
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ProcessServer {
/**
* @param args
*/
public static void main(String[] args) {
Thread threadlistpseudo=new Thread()
{
public PrintWriter out=null;
public BufferedReader in=null;
public ServerSocket sEcoute=null;
public Socket sService=null;
public void run()
{
try {
sEcoute =new ServerSocket(3500);
sService=sEcoute.accept();
out=new PrintWriter(sService.getOutputStream(),true);
in=new BufferedReader(new InputStreamReader(sService.getInputStream()));
String query=in.readLine();
System.out.println(query);
for (int i = 0; i < 10; i++) {
out.write(i + "Pouet\r\n");
out.flush();
in.readLine();
}
out.flush();
sEcoute.close();
} catch(Exception ex) {
ex.printStackTrace();
}
}
};
threadlistpseudo.start();
}
}
Bonne chance,
Niroken
Hello,
Voici un code complet qui marche : (je n'ai pas mis de connexion à une base de données tu feras ca)
import graphic.JListViewer; public class JListViewerLauncher { /** * @param args */ public static void main(String[] args) { new JListViewer(); } }package graphic; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JList; import net.ProcessClient; public class JListViewer extends JFrame { private static final long serialVersionUID = 1L; public JList mList; public JListViewer() { setSize(200, 200); setLayout(new FlowLayout()); mList = new JList(); DefaultListModel vDefaultListModel = new DefaultListModel(); vDefaultListModel.addElement("Pouet"); vDefaultListModel.addElement("Pouet"); mList.setModel(vDefaultListModel); JButton vButton = new JButton("Refresh"); vButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent pE) { displayDatasFromServer(); } }); add(mList); add(vButton); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } private void displayDatasFromServer() { Thread vThread = new Thread() { public void run () { try { mList.setModel(new ProcessClient().getDatasFromServer()); } catch (Exception e) { e.printStackTrace(); } } }; vThread.start(); } }package net; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.SocketException; import javax.swing.DefaultListModel; public class ProcessClient { public DefaultListModel getDatasFromServer() throws Exception { DefaultListModel vResult = new DefaultListModel(); Socket vClientSocket = new Socket("localhost",3500); OutputStream vClientOutputStream = vClientSocket.getOutputStream(); InputStream vClientInputStream = vClientSocket.getInputStream(); PrintWriter vOutputPrintWriter = new PrintWriter(vClientOutputStream,true); BufferedReader vInputBufferedReader = new BufferedReader(new InputStreamReader(vClientInputStream)); String vLineFromServer = null; //Debbut de la conversation client-serveur writeLineInPrintWriter(vOutputPrintWriter, "OK"); vLineFromServer = vInputBufferedReader.readLine(); vResult.addElement(vLineFromServer); writeLineInPrintWriter(vOutputPrintWriter, "OK"); while(vLineFromServer!=null) { try { vLineFromServer = vInputBufferedReader.readLine(); vResult.addElement(vLineFromServer); writeLineInPrintWriter(vOutputPrintWriter, "OK"); } catch (SocketException e) { // On met vLineFromServer a null pour sortir de la // boucle si le serveur interromp la connexion vLineFromServer = null; e.printStackTrace(); } } vClientSocket.close(); return vResult; } private void writeLineInPrintWriter(PrintWriter pPrintWriter, String pMessage) { if (pPrintWriter != null) { pPrintWriter.write(pMessage + System.getProperty("line.separator")); pPrintWriter.flush(); } } }import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class ProcessServer { /** * @param args */ public static void main(String[] args) { Thread threadlistpseudo=new Thread() { public PrintWriter out=null; public BufferedReader in=null; public ServerSocket sEcoute=null; public Socket sService=null; public void run() { try { sEcoute =new ServerSocket(3500); sService=sEcoute.accept(); out=new PrintWriter(sService.getOutputStream(),true); in=new BufferedReader(new InputStreamReader(sService.getInputStream())); String query=in.readLine(); System.out.println(query); for (int i = 0; i < 10; i++) { out.write(i + "Pouet\r\n"); out.flush(); in.readLine(); } out.flush(); sEcoute.close(); } catch(Exception ex) { ex.printStackTrace(); } } }; threadlistpseudo.start(); } }Bonne chance,
Niroken