Applet qui marche sur JBuilder mais ki s'affiche pas dans la page html ou php...

juanpipo Messages postés 9 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 25 juillet 2003 - 19 juin 2003 à 15:44
redford_2007 Messages postés 5 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 16 décembre 2004 - 16 déc. 2004 à 20:35
j'ai bien compilé ma classe, j'ai donc bien chatclient.class et j'ai essaye avec deux versions de la page html, avec ou sans html converter , et aucune des deux ne s'affiche, je finis mon stage demain, le chat marche sur jbuilder alors il srait dommage ke je ne puisse l'inserer dnas la page html...
merci de m'aider rapidement svp
nico

voici le code html de mes deux pages ke j'ai essaye...

sans converter :

<html>

<center>

</center>

</html>

avec converter :

<html>

<center>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<OBJECT classid="clsid:E19F9331-3110-11d4-991C-005004D3B3DB"WIDTH 800 HEIGHT 550 codebase="http://java.sun.com/products/plugin/1.3.0_02/jinstall-130_02-win32.cab#Version=1,3,0,2">

<COMMENT>
<NOEMBED>
</NOEMBED>

</COMMENT>
</OBJECT>
<!--

-->
<!--"END_CONVERTED_APPLET"-->

</center>

</html>

voici le code de ma classe :

import java.awt.*;
import java.applet.*;
import java.net.*;
import java.lang.*;
import java.io.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import java.text.*;
import javax.swing.text.DefaultStyledDocument;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyListener;

class ActionAdapter implements ActionListener {
    public void actionPerformed(ActionEvent e) {}
   }

public class chatclient extends JApplet implements Runnable, KeyListener
{ActionAdapter buttonListener;
Thread myThread=null;
Socket mySocket;
InputStream myInputStream;
BufferedInputStream myBuffInput;
OutputStream myOutputStream;
int Online=0;
int java11=1;
JPanel jpTitre, jpCouleur, panelCouleur, Red, Green, Blue, Resultat, jpCoul, jpListe, Principal,
       jpCoulResult, jpAction, jpCentre, jpIndication, Haut, panel,
       SousTitre, Salon, jpNom, PanelEst, panelSud, jpNiveau, ActionHaut, ActionBas, ActionCentre, Action;
JLabel jlTitre, jlIndication1, jlIndication2, jlIndication3, jlTexte, jlConnecte,jlLogin,
       jlPass,jlRouge, jlVert, jlBleu, result, jlSalon, jlNom, jlNom2, jlNiveau;
JButton Quitter, envoyer, Aide, Liste, Infos, Details, Actualiser, DeconnectUser,
        rp, rm, vp, vm, bp, bm;  // bouttons pour ajouter et retirer du rouge, vert et bleu.
JTextField jtRouge, jtVert, jtBleu, jtSalon;
JTextPane Dialogue,jtMess, jtConnecte;
public int Rouge,Vert,Bleu;
String re="",v="",b="", test, message;
Choice ChoixSalon;

// Gestion des évènements claviers si pressé
public void keyPressed(KeyEvent e) {
    int key = e.getKeyCode();
    switch (key) {
            case KeyEvent.VK_ENTER:
              try{message=jtMess.getText();
                  myOutputStream.write(convb(message+"\n"));
                  jtMess.setText("");
                 }
             catch (Exception ex) {}
               break;
            }
        }

// Autres évènements clavier dont nous ne nous servons pas
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}

// Méthode appelée par le système à l'initialisation de l'applet
  public void init()
  {

    if (getParameter("java11")!=null)
    { java11=Integer.parseInt(getParameter("java11")); }

    // On initialise les couleurs
Rouge=0;
Vert=0;
Bleu=125;
// On transforme en string les valeurs des couleurs
re=re.valueOf(Rouge);
v=v.valueOf(Vert);
b=b.valueOf(Bleu);
// On crée le JPanel Resultat qui contiendra la couleur choisie
Resultat=new JPanel();
Resultat.setToolTipText("Couleur choisie");
// On crée le JPanel jpCoulResult qui contiendra Resultat et le JLabel result
jpCoulResult=new JPanel();
//On crée le JLabel result
result=new JLabel("Nouvelle Couleur : ");
result.setForeground(Color.white);
//On fixe la taille de Resultat
Resultat.setPreferredSize(new Dimension(100,20));
Resultat.setMinimumSize(new Dimension(100,20));
Resultat.setMaximumSize(new Dimension(100,20));
Resultat.setBackground(new Color(Rouge,Vert,Bleu));
//Création des bouttons permettant d'ajouter et enlever de la couleur (rouge, vert et bleu)
rp=new JButton("+");
rp.setActionCommand("+rouge");
rp.setToolTipText("Ajouter du rouge");
rm=new JButton("-");
rm.setActionCommand("-rouge");
rm.setToolTipText("Enlever du rouge");
vp=new JButton("+");
vp.setActionCommand("+vert");
vp.setToolTipText("Ajouter du vert");
vm=new JButton("-");
vm.setActionCommand("-vert");
vm.setToolTipText("Enlever du vert");
bp=new JButton("+");
bp.setActionCommand("+bleu");
bp.setToolTipText("Ajouter du bleu");
bm=new JButton("-");
bm.setActionCommand("-bleu");
bm.setToolTipText("Enlever du bleu");

//Création des JLabel pour chaque couleurs
/*
jlNiveau=new JLabel("Niveau de : ");
jlNiveau.setForeground(Color.white);
jlNiveau.setFont(new Font("Dialog",1,13));
*/
jlRouge=new JLabel("Rouge : ");
jlRouge.setForeground(Color.white);
jlRouge.setFont(new Font("Dialog",1,13));
jlVert=new JLabel("Vert : ");
jlVert.setForeground(Color.white);
jlVert.setFont(new Font("Dialog",1,13));
jlBleu=new JLabel("Bleu : ");
jlBleu.setForeground(Color.white);
jlBleu.setFont(new Font("Dialog",1,13));

//Création des JTextField contenant la valeur de chaque couleur.
jtRouge=new JTextField(re,3);
jtRouge.setFont(new Font("Dialog",1,12));
jtRouge.setForeground(Color.red);
jtRouge.setBackground(Color.white);
jtRouge.setToolTipText("Selectionnez le niveau de rouge (entre 0 et 255)");
jtVert=new JTextField(v,3);
jtVert.setFont(new Font("Dialog",1,12));
jtVert.setForeground(new Color(0,100,0));
jtVert.setBackground(Color.white);
jtVert.setToolTipText("Selectionnez le niveau de vert (entre 0 et 255)");
jtBleu=new JTextField(b,3);
jtBleu.setFont(new Font("Dialog",1,12));
jtBleu.setForeground(Color.blue);
jtBleu.setBackground(Color.white);
jtBleu.setToolTipText("Selectionnez le niveau de bleu (entre 0 et 255)");
// Ces JTextField ne sont pas éditable.
jtRouge.setEditable(false);
jtVert.setEditable(false);
jtBleu.setEditable(false);
//Création du JPanel jpCouleur qui contiendra les bouttons et les JTextField
jpCouleur =new JPanel();
//Création des JPanel pour chaques couleurs qui contiendra les bouttons et le JTextField
Red =new JPanel();
Green =new JPanel();
Blue =new JPanel();
//Création du JPanel panelCouleur qui contiendra tout ce qui concerne
//le changement de couleur sauf niveau
panelCouleur =new JPanel();
//Création du JPanel panelSud qui contiendra tout ce qui concerne le changement de couleur
panelSud =new JPanel();
panelSud.setLayout(new BoxLayout(panelSud,BoxLayout.Y_AXIS));
/*
//Création du JPanel jpNiveau qui contiendra le JLabel jlNiveau
jpNiveau=new JPanel();
jpNiveau.setLayout(new BorderLayout());
*/
//La couleur de fond est établie pour chaques JPanel
jpCoulResult.setBackground(new Color(125,0,0));
Green.setBackground(new Color(125,0,0));
Red.setBackground(new Color(125,0,0));
Blue.setBackground(new Color(125,0,0));
jpCouleur.setBackground(new Color(125,0,0));
panelSud.setBackground(new Color(125,0,0));
//jpNiveau.setBackground(new Color(125,0,0));

// Dans les JPanel de chaques couleurs on y ajoute les bouttons et le JTextField
Red.add(rm);
Red.add(jtRouge);
Red.add(rp);
Green.add(vm);
Green.add(jtVert);
Green.add(vp);
Blue.add(bm);
Blue.add(jtBleu);
Blue.add(bp);
/*
//On remplit jpNiveau
jpNiveau.add(jlNiveau,BorderLayout.WEST);
*/
//La disposition de jpCouleur suivra une grille de 2 lignes et 3 colonnes (3 couleurs).
jpCouleur.setLayout(new GridLayout(2,3));
//On remplit jpCouleur
jpCouleur.add(jlRouge);
jpCouleur.add(jlVert);
jpCouleur.add(jlBleu);
jpCouleur.add(Red);
jpCouleur.add(Green);
jpCouleur.add(Blue);
//On remplit jpCoulResult
jpCoulResult.add(result);
jpCoulResult.add(Resultat);
//panelCouleur suit une disposition en Box verticale
panelCouleur.setLayout(new BoxLayout(panelCouleur,BoxLayout.Y_AXIS));
//On remplit panelCouleur
panelCouleur.add(jpCouleur);
panelCouleur.add(jpCoulResult);
//On remplit panelSud
//panelSud.add(jpNiveau);
panelSud.add(panelCouleur);

// Création du boutton Quitter et Envoyer
Quitter=new JButton("Quitter");
envoyer=new JButton("Envoyer");
envoyer.setMnemonic(KeyEvent.VK_ENTER);
// Création du JTextPane jtMess dans lequel l'utilisateur tapera ses commandes et son texte.
jtMess=new JTextPane(new DefaultStyledDocument());
jtMess.setForeground(new Color(Rouge,Vert,Bleu));
jtMess.setFont(new Font("Dialog",0,12));
jtMess.setBackground(Color.white);
jtMess.setPreferredSize(new Dimension(275,20));
jtMess.setMinimumSize(new Dimension(275,20));
jtMess.setMaximumSize(new Dimension(275,20));
jtMess.addKeyListener(this);
//Création du JTextPane Dialogue dans lequel apparaitra le dialogue et le resultat des commandes
Dialogue=new JTextPane(new DefaultStyledDocument());
Dialogue.setEditable(false);
Dialogue.setForeground(new Color(Rouge,Vert,Bleu));
Dialogue.setFont(new Font("Dialog",0,12));
Dialogue.setBackground(Color.white);
// Création d'un grand titre pour la page
jlTitre=new JLabel("CHAT SAM'Inform");
jlTitre.setForeground(Color.white);
jlTitre.setFont(new Font("Verdana",0,20));

// Indications pour parler en privé à partir de la liste des connectés
jlIndication1=new JLabel(" Cliquer sur le pseudo");
jlIndication1.setForeground(Color.white);
jlIndication2=new JLabel(" pour parler en privé");
jlIndication2.setForeground(Color.white);
jlIndication3=new JLabel(" puis appuyer sur Envoyer");
jlIndication3.setForeground(Color.white);
//Création du JLabel présentant jtMess
jlTexte=new JLabel("Texte : ");
jlTexte.setFont(new Font("Dialog",1,16));
jlTexte.setForeground(Color.white);
//Création du JLabel présentant le pseudo de l'utilisateur
jlNom=new JLabel("Votre pseudo est : ");
jlNom.setFont(new Font("Dialog",0,13));
jlNom2=new JLabel(getParameter("Pseudo"));
jlNom2.setFont(new Font("Dialog",1,14));
jlNom2.setForeground(Color.white);
jlNom.setForeground(Color.white);

//Création du JLabel présentant le salon dans lequel se situe l'utilisateur
jlSalon=new JLabel("Salon : ");
jlSalon.setFont(new Font("Dialog",1,15));
jlSalon.setForeground(Color.white);
//Liste des choix possibles en matière de salons
ChoixSalon=new Choice();
ChoixSalon.addItem("Choisissez votre salon");
ChoixSalon.addItem("Principal");
ChoixSalon.addItem("Sorties");
ChoixSalon.addItem("Co-Voiturage");
ChoixSalon.addItem("Spectacles");
//Création du JTextField contenant le nom du salon dans lequel l'utilisateur se situe.
jtSalon = new JTextField(ChoixSalon.getSelectedItem(),15);
jtSalon.setEditable(false);
jtSalon.setToolTipText("Par défaut vous êtes dans Principal");

//Création du JPanel jpTitre contenant le Titre
jpTitre=new JPanel();
//Création du JPanel jpCentre contenant le dialogue
jpCentre=new JPanel();
//Création du JPanel jpListe contenant la liste des connectés, les commandes et indications
jpListe=new JPanel();
//Création du JPanel jpAction contenant Action et le choix des couleurs
jpAction=new JPanel();
//Création du JPanel ActionCentre qui contiendra jtMess
ActionCentre=new JPanel();
//Création du JPanel ActionHaut qui contiendra jlTexte
ActionHaut=new JPanel();
//Création du JPanel ActionBas qui contiendra les bouttons envoyer et quitter
ActionBas=new JPanel();
//Création du JPanel Action qui contiendra ActionHaut, ActionCentre et ActionBas
Action=new JPanel();
Action.setLayout(new BoxLayout(Action,BoxLayout.Y_AXIS));
//Création d'un JPanel contenant les indications d'utilisation des messages privés
jpIndication=new JPanel();
//Création du JPanel avec les salons et le pseudo
SousTitre=new JPanel();
// Création du JPanel contenant le titre et le sous titre
Haut=new JPanel();
// Création du JPanel contenant la liste des salons
Salon=new JPanel();
//Création du JPanel contenant le pseudo de l'utilisateur
jpNom=new JPanel();
jpNom.setLayout(new BoxLayout(jpNom,BoxLayout.Y_AXIS));
// Création du JPanel contenant les bouttons de commandes
PanelEst=new JPanel();
// On remplit Salon
Salon.add(jlSalon);
Salon.add(ChoixSalon);
Salon.add(jtSalon);
// On remplit jpNom
jpNom.add(jlNom);
jpNom.add(jlNom2);
// On remplit SousTitre
SousTitre.add(Salon);
//On met Dialogue dans un JScrollPane jpDialogue
JScrollPane jpDialogue = new JScrollPane(Dialogue,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//On met jtMess dans un JScrollPane jpMess
JScrollPane jpMess = new JScrollPane(jtMess,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jpMess.setPreferredSize(new Dimension(250,30));
// On choisit la couleur de fond.
jpDialogue.setBackground(new Color(125,0,0));
jpIndication.setBackground(new Color(125,0,0));
jpAction.setBackground(new Color(125,0,0));
Action.setBackground(new Color(125,0,0));
ActionHaut.setBackground(new Color(125,0,0));
ActionCentre.setBackground(new Color(125,0,0));
ActionBas.setBackground(new Color(125,0,0));
jpListe.setBackground(new Color(125,0,0));
jpCentre.setBackground(new Color(125,0,0));
jpTitre.setBackground(new Color(125,0,0));
SousTitre.setBackground(new Color(125,0,0));
Salon.setBackground(new Color(125,0,0));
jpNom.setBackground(new Color(125,0,0));
PanelEst.setBackground(new Color(125,0,0));
jpMess.setBackground(new Color(125,0,0));
// On remplit PanelEst apres lui avoir donne une disposition
PanelEst.setLayout(new BoxLayout(PanelEst,BoxLayout.Y_AXIS));
PanelEst.add(jpNom);
/*
Details=new JButton("Liste détaillée des connectés");
Details.setPreferredSize(new Dimension(200,20));
Details.setMinimumSize(new Dimension(200,20));
Details.setMaximumSize(new Dimension(200,20));
PanelEst.add(Details);
*/
Liste=new JButton("Liste des pseudos des connectés");
Liste.setPreferredSize(new Dimension(200,20));
Liste.setMinimumSize(new Dimension(200,20));
Liste.setMaximumSize(new Dimension(200,20));
PanelEst.add(Liste);
/*
Infos=new JButton("Infos sur les salons");
Infos.setPreferredSize(new Dimension(200,20));
Infos.setMinimumSize(new Dimension(200,20));
Infos.setMaximumSize(new Dimension(200,20));
PanelEst.add(Infos);
*/
Aide=new JButton("Aide");
Aide.setPreferredSize(new Dimension(200,20));
Aide.setMinimumSize(new Dimension(200,20));
Aide.setMaximumSize(new Dimension(200,20));
PanelEst.add(Aide);
// Boutton seulement disponible pour l'administrateur
DeconnectUser=new JButton("Deconnecter un utilisateur");
DeconnectUser.setActionCommand("Deconnecter");
DeconnectUser.setPreferredSize(new Dimension(200,20));
DeconnectUser.setMinimumSize(new Dimension(200,20));
DeconnectUser.setMaximumSize(new Dimension(200,20));
if ((getParameter("Pseudo").equals("Admin")) ||
        (getParameter("Pseudo").equals("Moderateur")) ||
        (getParameter("Pseudo").equals("Webmaster"))  ||
        (getParameter("Pseudo").equals("Saminform")) ||
        (getParameter("Pseudo").equals("admin")) ||
        (getParameter("Pseudo").equals("moderateur")) ||
        (getParameter("Pseudo").equals("webmaster"))  ||
        (getParameter("Pseudo").equals("saminform")))
    {PanelEst.add(DeconnectUser);}

Actualiser=new JButton("Actualiser la liste des connectes");
Actualiser.setActionCommand("Actualiser");
Actualiser.setPreferredSize(new Dimension(200,20));
Actualiser.setMinimumSize(new Dimension(200,20));
Actualiser.setMaximumSize(new Dimension(200,20));
PanelEst.add(Actualiser);
//On remplit jpConnecte avec jtConnecte que l'on crée
jtConnecte=new JTextPane(new DefaultStyledDocument());
jtConnecte.setPreferredSize(new Dimension(170,350));
jtConnecte.setEditable(false);
jtConnecte.setForeground(new Color(Rouge,Vert,Bleu));
jtConnecte.setFont(new Font("Dialog",0,12));
jtConnecte.setBackground(Color.white);
//On met jtConnecte dans un JScrollPane jpConnecte
JScrollPane jpConnecte = new JScrollPane(jtConnecte,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jpConnecte.setBackground(new Color(125,0,0));
jpConnecte.setPreferredSize(new Dimension(170,350));
/* // Comme on ne peut pas parler en privé en cliquant sur un pseudo :
// On choisit la disposition de jpIndication
jpIndication.setLayout(new BoxLayout(jpIndication,BoxLayout.Y_AXIS));
//On remplit jpIndication
jpIndication.setLayout(new BoxLayout(jpIndication,BoxLayout.Y_AXIS));
jpIndication.add(jlIndication1);
jpIndication.add(jlIndication2);
jpIndication.add(jlIndication3);
*/
// On choisit la disposition de jpListe
jpListe.setLayout(new BorderLayout());
//On remplit jpListe
jpListe.add(PanelEst,BorderLayout.NORTH);
jpListe.add(jpConnecte,BorderLayout.CENTER);
// On ne donne plus les indications
//jpListe.add(jpIndication,BorderLayout.SOUTH);
// On choisit la disposition de jpCentre puis on le remplit
jpCentre.setLayout(new BorderLayout());
jpCentre.add(jpDialogue,BorderLayout.CENTER);
jpCentre.add(jpListe,BorderLayout.EAST);
// On remplit jpTitre
jpTitre.add(jlTitre);
//On remplit ActionHaut, ActionBas et Action
ActionHaut.add(jlTexte);
ActionCentre.add(jpMess);
ActionBas.add(envoyer);
ActionBas.add(Quitter);
Action.add(ActionHaut);
Action.add(ActionCentre);
Action.add(ActionBas);
jpAction.add(Action);
jpAction.add(panelSud);
//On choisit la disposition de Haut puis on le remplit
Haut.setLayout(new BoxLayout(Haut,BoxLayout.Y_AXIS));
Haut.add(jpTitre);
//Comme on ne veut plus les salons :
//Haut.add(SousTitre);

//Ajout de tout les éléments du chat dans l'applet après avoir choisit sa disposition
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(Haut,BorderLayout.NORTH);
this.getContentPane().add(jpCentre,BorderLayout.CENTER);
this.getContentPane().add(jpAction,BorderLayout.SOUTH);

buttonListener = new ActionAdapter() {
public void actionPerformed(ActionEvent e) {

javax.swing.text.MutableAttributeSet Attrib=new javax.swing.text.SimpleAttributeSet();
javax.swing.text.StyleConstants.setForeground(Attrib,new Color(Rouge,Vert,Bleu));

  try
  {
  // Envoyer
  if (e.getActionCommand().equals("Envoyer"))
    { message=jtMess.getText();
      myOutputStream.write(convb(message+"\n\r"));
      jtMess.setText("");
    }
    if (e.getActionCommand().equals("Quitter"))
          // Comment quitter une applet????? Et lancer une autre page php ou html!
    { myOutputStream.write(convb(".q\n"));
      Online=0;
      Quitter();
/*  // Liens a faire autrement
      Properties sys = System.getProperties();
      String os = sys.getProperty("os.name");
      Runtime r = Runtime.getRuntime();
      try
       {if (os.endsWith("NT")||os.endsWith("2000")||os.endsWith("XP"))
           r.exec("cmd /c start .\\tutu.html");
         else
           r.exec("start .\\tutu.html");
       }
      catch (IOException ex) {ex.printStackTrace();}
*/
    }
    if (e.getActionCommand().equals("+rouge"))
        {if (Rouge<251)
          {Rouge+=5;}
          else Rouge=255;
          re=re.valueOf(Rouge);
          jtRouge.setText(re);
          Resultat.setBackground(new Color(Rouge,Vert,Bleu));
          jtMess.getStyledDocument().setParagraphAttributes(0, jtMess.getStyledDocument().getLength(), Attrib,true);
    }
    if (e.getActionCommand().equals("-rouge"))
        {if (Rouge>4)
           {Rouge-=5;}
            else Rouge=0;
            re=re.valueOf(Rouge);
            jtRouge.setText(re);
            Resultat.setBackground(new Color(Rouge,Vert,Bleu));
            jtMess.getStyledDocument().setParagraphAttributes(0, jtMess.getStyledDocument().getLength(), Attrib,true);
    }
    if (e.getActionCommand().equals("+vert"))
        {if (Vert<251)
            {Vert+=5;}
             else Vert=255;
             v=v.valueOf(Vert);
             jtVert.setText(v);
             Resultat.setBackground(new Color(Rouge,Vert,Bleu));
             jtMess.getStyledDocument().setParagraphAttributes(0, jtMess.getStyledDocument().getLength(), Attrib,true);
        }
    if (e.getActionCommand().equals("-vert"))
        {if (Vert>4)
          {Vert-=5;}
          else Vert=0;
          v=v.valueOf(Vert);
          jtVert.setText(v);
          Resultat.setBackground(new Color(Rouge,Vert,Bleu));
          jtMess.getStyledDocument().setParagraphAttributes(0, jtMess.getStyledDocument().getLength(), Attrib,true);
         }
    if (e.getActionCommand().equals("-bleu"))
        {if (Bleu>4)
             {Bleu-=5;}
             else Bleu=0;
             b=b.valueOf(Bleu);
             jtBleu.setText(b);
             Resultat.setBackground(new Color(Rouge,Vert,Bleu));
             jtMess.getStyledDocument().setParagraphAttributes(0, jtMess.getStyledDocument().getLength(), Attrib,true);
        }
    if (e.getActionCommand().equals("+bleu"))
         {if (Bleu<251)
             {Bleu+=5;}
             else Bleu=255;
             b=b.valueOf(Bleu);
             jtBleu.setText(b);
             Resultat.setBackground(new Color(Rouge,Vert,Bleu));
             jtMess.getStyledDocument().setParagraphAttributes(0, jtMess.getStyledDocument().getLength(), Attrib,true);
         }
/*
    if (e.getActionCommand().equals("Liste détaillée des connectés"))
         { myOutputStream.write(convb(".d\n\r")); }
*/
    if (e.getActionCommand().equals("Liste des pseudos des connectés"))
         { myOutputStream.write(convb(".l\n\r")); }
/*
    if (e.getActionCommand().equals("Infos sur les salons"))
         { myOutputStream.write(convb(".a\n\r")); }
*/
    if (e.getActionCommand().equals("Aide"))
         { myOutputStream.write(convb(".he\n\r")); }

    if (e.getActionCommand().equals("Actualiser"))
         { myOutputStream.write(convb(".z\n\r")); }

    if (e.getActionCommand().equals("Deconnecter"))
      { Dialogue.getDocument().insertString(Dialogue.getDocument().getLength(),"La commande pour deconnecter un utilisateur est : ",Attrib);
        Dialogue.getDocument().insertString(Dialogue.getDocument().getLength(),"\n\r",Attrib);
        Dialogue.getDocument().insertString(Dialogue.getDocument().getLength(),".v ",Attrib);}
        Dialogue.getDocument().insertString(Dialogue.getDocument().getLength(),"\n\r",Attrib);
      }
  catch (Exception ex) {}
}};

envoyer.addActionListener(buttonListener);
Quitter.addActionListener(buttonListener);
rp.addActionListener(buttonListener);
rm.addActionListener(buttonListener);
vp.addActionListener(buttonListener);
vm.addActionListener(buttonListener);
bp.addActionListener(buttonListener);
bm.addActionListener(buttonListener);
Aide.addActionListener(buttonListener);
//Details.addActionListener(buttonListener);
Liste.addActionListener(buttonListener);
//Infos.addActionListener(buttonListener);
DeconnectUser.addActionListener(buttonListener);
Actualiser.addActionListener(buttonListener);
}
        // Lance un Thread
  public void start()
  {
  int l;
    l=logon();
    if (l==0) // Si la connexion a bien marchée.
    { if (myThread == null){
      myThread=new Thread(this);  // Création d'un Thread
      myThread.start();}  // Lancement du nouveau Thread
    }
  }

     // Permet la connexion au serveur
  public int logon()
  { try
    { // Ouverture d'une connexion sur le port de l'hôte
      mySocket=new Socket("192.168.1.56",2005);
      // Récupération des flux d'entrés et de sortie
      myInputStream=mySocket.getInputStream();
      myBuffInput=new BufferedInputStream(myInputStream,2048);
      myOutputStream=mySocket.getOutputStream();
      Online=1;
    }
    catch (Exception e) { Online=0; }
    if (Online==1) return 0; // Si la connexion a fonctionné on retourne 0.
    return 1; // S'il y a eu des erreurs on retourne 1.
  }

  public void run()
  {byte[] in=new byte[2048];
   int r,c=0;
   String myString="";
    if (Online==1) // Si la connexion a bien été établie
    {// voir comment récupérer le nom d'utilisateur à la suite de la connexion en php,
     // donc dans la page php
      if (getParameter("Pseudo")!=null)
      { try
        { myOutputStream.write(convb(".n"+getParameter("Pseudo")+"\n")); }
        catch (Exception e) {}
      }
    }

javax.swing.text.MutableAttributeSet Attrib=new javax.swing.text.SimpleAttributeSet();

    try
            { myOutputStream.write(convb(".z\n")); }
            catch (Exception e) {}

    while(true) // Boucle infinie permettant au chat de tester les acivités de l'utilisateur
    { if (Online==1)
       { /*              // on lance l'action qui permet l'affichage des connectés
        try {myOutputStream.write(convb(".z"));}// \n\r"));}provoque un plantage et un spam je c pas pkoi!
             catch (Exception ex) {}*/
                    // Retourne dans c le nombre de byte dans myBuffInput
       try { c=myBuffInput.read(in,0,2048); } catch (Exception e) { Online=0; }

        for(r=0; r<c; r++)
        { if (in[r]!='\n' && in[r]!='\r')
          { myString+=""+(char)in[r]; } // On entre dans la chaine tous les caractères jusqu'à \n\r.
          else
          { //Si la chaine commence par "Liste des connectes" alors l'afficher dans jtConnecte.
            try{
            test=myString.substring(0,19);
            System.out.println("test = "+ test);
            if (test.equals("Liste des connectes"))
            {jtConnecte.setText(myString);
             myString="";
             test="";}
            else if (test.equals(">>> Vous etes decon"))
                    {myString="";
                    test="";
                    myOutputStream.write(convb(".q\n"));
                    Online=0;
                    Quitter();
                    }
              else // sinon on l'affiche dans le Dialogue
              {javax.swing.text.StyleConstants.setForeground(Attrib,new Color(Rouge,Vert,Bleu));
              try
                {Dialogue.getDocument().insertString(Dialogue.getDocument().getLength(),myString,Attrib);
                 Dialogue.getDocument().insertString(Dialogue.getDocument().getLength(),"\n\r",Attrib);
                 myString=""; // Permet de ne pas ecrire chaque lignes en double
                 Dialogue.setCaretPosition(Dialogue.getDocument().getLength());
                }catch (Exception ex) {ex.printStackTrace();}
              }//fin else
            }
              catch (Exception ex) {}
          }
        }
      }
        else // si l'utilisateur n'est plus en ligne, on ferme le socket et suspend le Thread.
      {  try { mySocket.close(); } catch (Exception e) {}
//         myThread.suspend();
           stop();
      }
    }
  }

  public boolean action(Event e, Object o)
  {
  String obj;
  String message;

    obj=o.toString();
    System.out.println(e.target.toString());
    try
    { if (e.target==jtSalon)
      {if (jtSalon.getText().equals("Principal"))
          {jtSalon.setText("Principal");
          myOutputStream.write(convb(".c 0\n\r"));}
          else
       if (jtSalon.getText().equals("Sorties"))
          {jtSalon.setText("Sorties");
          myOutputStream.write(convb(".c 1\n\r"));}
          else
        if (jtSalon.getText().equals("Co-Voiturage"))
          {jtSalon.setText("Co-Voiturage");
          myOutputStream.write(convb(".c 2\n\r"));}
          else
        if (jtSalon.getText().equals("Spectacles"))
          {jtSalon.setText("Spectacles");
          myOutputStream.write(convb(".c 3\n\r"));}
          // Si le salon n'est pas un des 4 proposé, on choisit Principal
          else {jtSalon.setText("Principal");
          myOutputStream.write(convb(".c 0\n\r"));}
      }  // Fin de channelText
        else

      if (e.target==jtMess)  // Si le texte de jtMess est validé, on l'envoie
      { message=jtMess.getText();
        myOutputStream.write(convb(message+"\n"));
        jtMess.setText("");
      }
        else
           // Si la liste déroulante est activée, le nom du salon choisi apparaît dans jtSalon
      if (e.target==ChoixSalon)
      { if (ChoixSalon.getSelectedIndex()!=0)
        { myOutputStream.write(convb(".c"+ChoixSalon.getSelectedItem()+"\n"));
          jtSalon.setText(ChoixSalon.getSelectedItem());
          ChoixSalon.select(0);
        }
      }
  }
    catch (Exception ex) {}
    return false;
  }

// Convertit une chaîne de caractère en un tableau de byte
  byte[] convb(String myString)
  {byte[] myBytes=new byte[2048];
   int r;
   for(r=0; r<myString.length(); r++)
    { myBytes[r]=(byte)myString.charAt(r);
    }
   return myBytes;
  }

// Ferme le socket et arrête le Thread
  public void stop()
  { try { mySocket.close(); } catch (Exception e) {}
  if (myThread != null)
         {myThread = null;}
  }
  public void Quitter()
  {
   try {System.out.println("debut du try");
      URL ul=new URL("tutu.html"); // plante la!!!
      System.out.println("apres URL");
      String s2="mainframe";
      System.out.println("apres mainframe");
      this.getAppletContext().showDocument(ul,s2);
      System.out.println("apres showdocument");
       }
    catch (Exception ex){System.out.println("dans l'exception");};
  }
}

3 réponses

tartur Messages postés 22 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 11 février 2004
25 juin 2003 à 15:23
je ne connais pas ce que c'estt le converter mais je c que les browser comme internet explorer 5 ou 5.5 ne prennent en compte que la versions 1.1.x du jdk donc po de bibliothèque swing dedans et les autres classes ou mêmes méthodes de classes qui sont apparus à partir du jdk 1.2!
suis dsl de ne pas avoir pu t'aider à tempsc que aujourd'hui que je suis revenu sur le site bon bah bonne chance en tt cas ça sera une chose de plus à connaitre.
tartur
0
tartur Messages postés 22 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 11 février 2004
25 juin 2003 à 15:41
si je peux me permettre d'une autre remarque, c'est bien dommage que tu programme avec java comme si c'était en C profites en c'est un langage objet alors vaut mieux découper les taches le plus possible!
et je veux aussi savoir tu n'as po besoin de serveur pour ton applet de tchat
tartur
0
redford_2007 Messages postés 5 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 16 décembre 2004
16 déc. 2004 à 20:35
salut
0
Rejoignez-nous