cs_boboz2
Messages postés11Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention11 juin 2008
-
11 juin 2008 à 10:11
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 2009
-
11 juin 2008 à 16:03
Bonjour,
J'ai repris un code source de GillesWebmaster trouver sur ce site pour le modifier et ainsi realiser mon projet scolaire. Mais j'ai quelques erreurs, essentielement coter serveur.
La premiere est que je n'arrive pas à passer de la fenetre d'initialisation à la fenetre reel du serveur, alors que seul la fenetre reel du serveur fonctionne.
La deuxieme est que je n'arrive pas a afficher les clients connecte dans un text area a la suite d'un clic sur le bouton Client dans la fenetre serveur.
voici mon code de la fenetre d'initialisation :
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ChatServeur
{
JFrame cadre;
JTextField port;
public static void main(String[] args)
{
ChatServeur serveur = new ChatServeur();
serveur.go();
}
public void go()
{
cadre= new JFrame("Chat serveur Istase (Fenetre identification)");
JPanel infopanneau= new JPanel();
JLabel texteinfo= new JLabel("Veuillez entrez les infos...");
infopanneau.add(texteinfo);
JPanel portpanneau= new JPanel();
JLabel porttexte= new JLabel("Port: ");
port= new JTextField(20);
port.setText("5000");
portpanneau.add(porttexte);
portpanneau.add(port);
JPanel boutonpanneau= new JPanel();
JButton boutonEnvoi = new JButton("Envoyer...");
boutonEnvoi.addActionListener(new EcouteBoutonEnvoi());
boutonpanneau.add(boutonEnvoi);
JPanel panneau= new JPanel();
panneau.add(infopanneau);
panneau.add(portpanneau);
panneau.add(boutonpanneau);
panneau.setLayout(new BoxLayout(panneau, BoxLayout.Y_AXIS));
cadre.getContentPane().add(BorderLayout.CENTER, panneau);
cadre.setSize(300,350);
cadre.setVisible(true);
cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public class EcouteBoutonEnvoi implements ActionListener
{
public void actionPerformed(ActionEvent ev)
{
try
{
cadre.setVisible(false);
ChatServer serveurfinal= new ChatServer(port.getText());
serveurfinal.ihminstall();
serveurfinal.go();
System.out.println("fini pour serveur");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
et voici mon code de la fenetre reel du serveur :
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ChatServer
{
int portfinal=5000;
JTextArea boiteinfo;
JTextArea boiteclient;
ArrayList clientOutputStreams;
// Chat avec port en parametre
public ChatServer(String port)
{
portfinal=Integer.parseInt(port);
}
// chat sans parametre
public ChatServer()
{
}
//Main
public static void main(String[] args)
{
ChatServer Chatserveur= new ChatServer();
System.out.println("fini pour server");
Chatserveur.ihminstall();
System.out.println("fini pour ihm");
Chatserveur.go();
}
//IHM
public void ihminstall()
{
JFrame cadre= new JFrame("Chat serveur Istase (Fenetre conversation)");
JPanel infopanneau= new JPanel();
JLabel encourstexte= new JLabel("Status actuel: ");
infopanneau.add(encourstexte);
boiteinfo = new JTextArea(15,30);
boiteinfo.setLineWrap(true);
boiteinfo.setWrapStyleWord(true);
boiteinfo.setEditable(false);
infopanneau.add(boiteinfo);
JPanel clientpanneau = new JPanel();
JLabel clientexte = new JLabel("Client Connecté: ");
clientpanneau.add(clientexte);
boiteclient = new JTextArea(15,30);
boiteclient.setLineWrap(true);
boiteclient.setWrapStyleWord(true);
boiteclient.setEditable(false);
clientpanneau.add(boiteclient);
JButton fermerfenetre= new JButton("Fermer la fenêtre");
fermerfenetre.addActionListener(new EcouteBoutonEnvoi());
JPanel boutonpanneau= new JPanel();
boutonpanneau.add(fermerfenetre);
JButton client= new JButton("client");
client.addActionListener(new EcouteClient());
JPanel boutonclient= new JPanel();
boutonclient.add(client);