Citation :
/*
* Created on 21 juin 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.applet.*;
import java.io.*;
import java.net.*;
import java.util.List;
import java.util.ArrayList;
import java.util.StringTokenizer;
import grille.*;
import java.awt.*;
/**
* @author moi
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GrilleApplet extends Applet implements Runnable{
private int _port;
private Socket _soc;
private Socket _soc2;
private PrintStream _out;
private BufferedReader _in;
private PrintStream _out2;
private BufferedReader _in2;
private GrilleIHM _grille;
private boolean _demarre=false;
private Thread _monThread;
public void init(){
System.out.println("entree dans init()" );
String p=getParameter("port" );
if(p!=null){
_port=Integer.parseInt(p);
}
try{
_soc=new Socket("localhost",80);
_out=new PrintStream(_soc.getOutputStream());
_in=new BufferedReader(new InputStreamReader(_soc.getInputStream()));
}
catch(IOException e){
e.printStackTrace();
}
}
public void start(){
System.out.println("applet demarré" );
//Exécution du servlet en envoyant la requête
//_out.print("GET /servlet/GrilleServlet?PORT_SERVEUR="+_port+" HTTP/1.1" );
//init du nouveau socket
try{
_soc2=new Socket("localhost",21);
_out2=new PrintStream(_soc2.getOutputStream());
_in2=new BufferedReader(new InputStreamReader(_soc2.getInputStream()));
}
catch(IOException e){
e.printStackTrace();
}
//Ecrire sur le socket "GET_TAILLE_GRILLE"
_out2.print("GET_TAILLE_GRILLE" );
//Lire le socket "TAILLE_GRILLE <nbX> <nbY>" Si la lecture est autre que TAILLE_GRILLE alors on continue à lire.
String ligne=null;
List params;
try{
ligne=_in.readLine();
if(ligne.indexOf("TAILLE_GRILLE" )!=-1){
//Décodage de nbX et nbY
params=new ArrayList();
StringTokenizer t=new StringTokenizer(ligne);
while(t.hasMoreTokens()){
params.add(t.nextToken());
}
}
}
catch(IOException e){
e.printStackTrace();
}
//Creer l'IHM grille et ajout du panel de l'ihm dans l'applet
//_grille=new GrilleIHM(Integer.parseInt((String)params.get(1)),Integer.parseInt((String)params.get(2)),null);
//ajout de grilleIHM a l'applet
_grille=new GrilleIHM(20,20,null);
add(_grille.getPanel());
//_grille.afficherGrille();
//this.show();
//this.setVisible(true);
//
//démarrage du thread
_monThread=new Thread(this);
_monThread.start();
_demarre=true;
paint(getGraphics());
this.getGraphics().drawString("fin de start()",1,1);
}
public void run(){
String ligne=null;
this.getGraphics().drawString("entree dans run",1,1);
while(_demarre){
try{
while((ligne=_in.readLine()).indexOf("DEPLACER" )==-1){
}
}
catch(IOException e){
}
//Décodage de m, xD, yD, xA, yA
List params=new ArrayList();
StringTokenizer t=new StringTokenizer(ligne);
while(t.hasMoreTokens()){
params.add(t.nextToken());
}
_grille.setMarque(0,Integer.parseInt((String)params.get(2)),Integer.parseInt((String)params.get(3)));
_grille.setMarque(Integer.parseInt((String)params.get(1)),Integer.parseInt((String)params.get(4)),Integer.parseInt((String)params.get(5)));
}
}
public void paint(Graphics g){
_grille.get_canvas().paint(g);
}
public void stop(){
if (_monThread!=null){
_demarre=false;
_out.print("STOP" );
_monThread=null;
}
}
}
|