begin process at 2012 02 14 04:37:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Applet

 > 

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


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

jeudi 19 juin 2003 à 15:44:44 | Applet qui marche sur JBuilder mais ki s'affiche pas dans la page html ou php...

juanpipo

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>
<body bgcolor="#b0b0b0" text="black">
<center>
<applet code="chatclient.class" width=800 height=550>
</applet>
<param name="host" value="192.168.1.56">
<param name="port" value="2005">
<param name='java11' value='0'>
<param name="Pseudo" value="tutu">
</center>
</body>
</html>


avec converter :

<html>
<body bgcolor="#b0b0b0" text="black">
<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">
<PARAM NAME = CODE VALUE = "chatclient.class" >
<PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.3.0_02">
<PARAM NAME="scriptable" VALUE="false">
<COMMENT>
<EMBED type="application/x-java-applet;jpi-version=1.3.0_02" CODE = "chatclient.class" WIDTH = 400 HEIGHT = 600 scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3.0_02/plugin-install.html"><NOEMBED>
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
<!--
<APPLET CODE = "chatclient.class" WIDTH = 400 HEIGHT = 600>
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
<param name="host" value="192.168.1.56">
<param name="port" value="2005">
<param name='java11' value='0'>
<param name="Pseudo" value="tutu">
</center>
</body>
</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 <pseudo de l'utilisateur>",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");};
}
}

mercredi 25 juin 2003 à 15:23:08 | Re : Applet qui marche sur JBuilder mais ki s'affiche pas dans la page html ou php...

tartur

Membre Club
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


-------------------------------
Réponse au message :
-------------------------------

> 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>
> <body bgcolor="#b0b0b0" text="black">
> <center>
> <applet code="chatclient.class" width=800 height=550>
> </applet>
> <param name="host" value="192.168.1.56">
> <param name="port" value="2005">
> <param name='java11' value='0'>
> <param name="Pseudo" value="tutu">
> </center>
> </body>
> </html>
>
>
> avec converter :
>
> <html>
> <body bgcolor="#b0b0b0" text="black">
> <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">
> <PARAM NAME = CODE VALUE = "chatclient.class" >
> <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.3.0_02">
> <PARAM NAME="scriptable" VALUE="false">
> <COMMENT>
> <EMBED type="application/x-java-applet;jpi-version=1.3.0_02" CODE = "chatclient.class" WIDTH = 400 HEIGHT = 600 scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3.0_02/plugin-install.html"><NOEMBED>
> </NOEMBED>
> </EMBED>
> </COMMENT>
> </OBJECT>
> <!--
> <APPLET CODE = "chatclient.class" WIDTH = 400 HEIGHT = 600>
> </APPLET>
> -->
> <!--"END_CONVERTED_APPLET"-->
> <param name="host" value="192.168.1.56">
> <param name="port" value="2005">
> <param name='java11' value='0'>
> <param name="Pseudo" value="tutu">
> </center>
> </body>
> </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 <pseudo de l'utilisateur>",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");};
> }
> }
>
>

mercredi 25 juin 2003 à 15:41:21 | Re : Applet qui marche sur JBuilder mais ki s'affiche pas dans la page html ou php...

tartur

Membre Club
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


-------------------------------
Réponse au message :
-------------------------------

> 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>
> <body bgcolor="#b0b0b0" text="black">
> <center>
> <applet code="chatclient.class" width=800 height=550>
> </applet>
> <param name="host" value="192.168.1.56">
> <param name="port" value="2005">
> <param name='java11' value='0'>
> <param name="Pseudo" value="tutu">
> </center>
> </body>
> </html>
>
>
> avec converter :
>
> <html>
> <body bgcolor="#b0b0b0" text="black">
> <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">
> <PARAM NAME = CODE VALUE = "chatclient.class" >
> <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.3.0_02">
> <PARAM NAME="scriptable" VALUE="false">
> <COMMENT>
> <EMBED type="application/x-java-applet;jpi-version=1.3.0_02" CODE = "chatclient.class" WIDTH = 400 HEIGHT = 600 scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3.0_02/plugin-install.html"><NOEMBED>
> </NOEMBED>
> </EMBED>
> </COMMENT>
> </OBJECT>
> <!--
> <APPLET CODE = "chatclient.class" WIDTH = 400 HEIGHT = 600>
> </APPLET>
> -->
> <!--"END_CONVERTED_APPLET"-->
> <param name="host" value="192.168.1.56">
> <param name="port" value="2005">
> <param name='java11' value='0'>
> <param name="Pseudo" value="tutu">
> </center>
> </body>
> </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 <pseudo de l'utilisateur>",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");};
> }
> }
>
>

jeudi 16 décembre 2004 à 20:35:55 | Re : Applet qui marche sur JBuilder mais ki s'affiche pas dans la page html ou php...


Cette discussion est classée dans : création, add, jpanel, color, setbackground


Répondre à ce message

Sujets en rapport avec ce message

Affichage de mon applet dans la page html [ par juanpipo ] J'ai longtemps bloqué sur l'affichage de mon applet sur JBuilder7 , maintenant que ce problème est résolu j'aimerais arriver à l'afficher dans ma page la liaison entre 2 interface [ par sancha ] jé 2 interface Interface1 et Interface2 jé essayé de faire la liaison entre les 2 mais jarrivré ps (quant je clic sur le bouton1 connecter je ve voir progarmmation java [ par betoile ] bonjour a tous ma fenetre a un defaut genre une tache quelqu'un peut m'ameliorer la fenetre svp import java.awt.BorderLayout; import java.awt.Butto ajouter un listener [ par roidunet ] public class conv{      private  JFrame frame = null;     private  JPanel panneau= null;     private  JPanel panneau1= null;     private  JPanel panne Problème d'affichage [ par elect ] Bonjour,J'essaie de réaliser une ptite application dans le cadre d'un projet, pour représenter un signal, sa transformé de fourier et quelque une de s probleme JAVA WEB START [ par rainbow89 ] jour, je viens de deployer mon application JAVA/JDBC mais je me suis rendu compte qu'en appuyant sur le bouton qui lance un formulaire d'ajout RIEN réalisation d'un minuteur [ par coach872 ] salut, je veut réalisé un minuteur en cliquant sur un bouton voici mon code[code=java] import java.awt.*; import java.util.*; import java.awt.event.*; Proble GridLayout [ par sayone ] Bonjour à tous,Je suis débutant et je dois créer une genre d'interface graphique mais le probleme c'est que je n'arrive pas à positionner les texte et probleme chat graphique [ par boboz2 ] 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 Simple Application calcule la somme et la multiplicaion [ par khallil11 ] je suis entraine de crée une simple app en rmi qui calculer la somme ou le produit de X et Y selon la demande du client, mais comment envoyer les donn


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,040 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales