Probleme d'affichage d'une applet

juanpipo Messages postés 9 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 25 juillet 2003 - 2 juin 2003 à 10:42
juanpipo Messages postés 9 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 25 juillet 2003 - 2 juin 2003 à 11:23
Voila le message d'erreur qui s'affiche:

java.awt.AWTError: BoxLayout can't be shared

at javax.swing.BoxLayout.checkContainer(BoxLayout.java:342)

at javax.swing.BoxLayout.invalidateLayout(BoxLayout.java:147)

at java.awt.Container.invalidate(Container.java:701)

at java.awt.Component.addNotify(Component.java:4036)

at java.awt.Container.addNotify(Container.java:1572)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at javax.swing.JRootPane.addNotify(JRootPane.java:483)

at java.awt.Container.addNotify(Container.java:1579)

at java.awt.Panel.addNotify(Panel.java:74)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at java.awt.ScrollPane.addNotify(ScrollPane.java:472)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at java.awt.Container.addNotify(Container.java:1579)

at javax.swing.JComponent.addNotify(JComponent.java:3500)

at javax.swing.JRootPane.addNotify(JRootPane.java:483)

at java.awt.Container.addNotify(Container.java:1579)

at java.awt.Window.addNotify(Window.java:349)

at java.awt.Frame.addNotify(Frame.java:361)

at java.awt.Window.pack(Window.java:367)

at com.borland.jbuilder.runtime.applet.AppletTestbed.startApplet(Unknown Source)

at com.borland.jbuilder.runtime.applet.AppletTestbed.main(Unknown Source)

Si quelqu'un a une solution????

3 réponses

juanpipo Messages postés 9 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 25 juillet 2003
2 juin 2003 à 10:44
Voici mon code: (il s'agit d'un chat en java, c'est la partie client)


package tutu;

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, jpConnecte, Haut, panel, jpDialogue, SousTitre, Salon, jpNom, PanelEst;
JLabel jlTitre, jlIndication1, jlIndication2, jlIndication3, jlTexte, jlConnecte,jlLogin,
       jlPass,jlRouge, jlVert, jlBleu, result, jlSalon, jlNom;
JButton Quitter, envoyer, valider,
        rp, rm, vp, vm, bp, bm;  // bouttons pour ajouter et retirer du rouge, vert et bleu.
JTextField jtRouge, jtVert, jtBleu, jtSalon, jtConnecte;
JTextPane Dialogue,jtMess;
public int Rouge,Vert,Bleu;
String re="",v="",b="", test, message;
Choice ChoixSalon;
Graphics gg;
//JTextFieldLimit jtMessLimit;
// Ne sert que si jtMess est un JTextField, cas pour lequel il faut rajouter la classe JTextFieldLimit.
/*
public void keyReleased(KeyEvent evt) //ici vide mais obligatoire
   {   }
public void keyTyped(KeyEvent evt)
{  char touche=evt.getKeyChar();}   //caractère
public void keyPressed(KeyEvent evt)
{  int t=evt.getKeyCode();    //code touche
   int m=evt.getModifiers();  //masque modificateurs clavier
   switch(t){
     case evt.VK_ENTER: {message=jtMess.getText();
      myOutputStream.write(convb(message+"\n"));
      jtMess.setText("");} break;}
  repaint();}
*/

// 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
jlRouge=new JLabel("Niveau de rouge : ");
jlRouge.setForeground(Color.white);
jlRouge.setFont(new Font("Dialog",1,17));
jlVert=new JLabel("Niveau de vert : ");
jlVert.setForeground(Color.white);
jlVert.setFont(new Font("Dialog",1,17));
jlBleu=new JLabel("Niveau de bleu : ");
jlBleu.setForeground(Color.white);
jlBleu.setFont(new Font("Dialog",1,17));

//Création des JTextField contenant la valeur de chaque couleur.
jtRouge=new JTextField(re,3);
jtRouge.setFont(new Font("Dialog",1,16));
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,16));
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,16));
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
panelCouleur =new JPanel();

//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));

// 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);

//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(panel,BoxLayout.Y_AXIS));
//On remplit panelCouleur
panelCouleur.add(jpCouleur);
panelCouleur.add(jpCoulResult);
// 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(250,20));
jtMess.setMinimumSize(new Dimension(250,20));
jtMess.setMaximumSize(new Dimension(250,20));
//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.setForeground(Color.white);
//Création du JLabel présentant le pseudo de l'utilisateur
jlNom=new JLabel("Votre pseudo est : "+getParameter("Pseudo"));
jlNom.setForeground(Color.white);
//Création du JLabel présentant le salon dans lequel se situe l'utilisateur
jlSalon=new JLabel("Salon : ");
jlSalon.setForeground(Color.white);
//Création du JTextField contenant le nom du salon dans lequel l'utilisateur se situe.
jtSalon = new JTextField("Principal");
//Liste des choix possibles en matière de salons
ChoixSalon=new Choice();
ChoixSalon.addItem("Principal");
ChoixSalon.addItem("Sorties");
ChoixSalon.addItem("Co-Voiturage");
ChoixSalon.addItem("Spectacles");

//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 jtMess, le choix de couleurs et les bouttons envoyer et quitter
jpAction=new JPanel();
//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();
// Création du JPanel contenant les bouttons de commandes
PanelEst=new JPanel();
//Création du JPanel contenant la liste des connectés
jpConnecte=new JPanel();
// On remplit Salon
Salon.add(jlSalon);
Salon.add(ChoixSalon);
// On remplit jpNom
jpNom.add(jlNom);
// On remplit SousTitre
SousTitre.add(Salon);
SousTitre.add(jpNom);
//On met Dialogue dans un JScrollPane jpDialogue
JScrollPane jpDialogue = new JScrollPane(Dialogue,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
// 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));
jpListe.setBackground(new Color(125,0,0));
jpCentre.setBackground(new Color(125,0,0));
jpTitre.setBackground(new Color(125,0,0));
// On remplit PanelEst
PanelEst.add(new Button("Liste détaillée des connectés"));
PanelEst.add(new Button("Liste des pseudos des connectés"));
PanelEst.add(new Button("Infos sur les salons"));
PanelEst.add(new Button("Aide"));
//On remplit jpConnecte avec jtConnecte que l'on crée
jtConnecte=new JTextField();
jpConnecte.add(jtConnecte);
jpConnecte.setSize(new Dimension(100,350));
// On choisit la disposition de jpIndication
jpIndication.setLayout(new BoxLayout(jpIndication,BoxLayout.Y_AXIS));
//On remplit jpIndication
jpIndication.add(jlIndication1);
jpIndication.add(jlIndication2);
jpIndication.add(jlIndication3);
// On choisit la disposition de jpListe
jpListe.setLayout(new BorderLayout());
//On remplit jpListe
jpListe.add(jpConnecte);
jpListe.add(jpIndication,BorderLayout.SOUTH);
jpListe.add(PanelEst);
// 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 jpAction
jpAction.add(panelCouleur);
jpAction.add(jlTexte);
jpAction.add(jtMess);
jpAction.add(envoyer);
jpAction.add(Quitter);
//On choisit la disposition de Haut puis on le remplit
Haut.setLayout(new BoxLayout(Haut,BoxLayout.Y_AXIS));
Haut.add(jpTitre);
Haut.add(SousTitre);
//Création de Principal qui contiendra tout les éléments du chat, on choisit sa disposition et le remplit
Principal=new JPanel();
Principal.setLayout(new BorderLayout());
Principal.add(Haut,BorderLayout.NORTH);
Principal.add(jpCentre,BorderLayout.CENTER);
Principal.add(jpAction,BorderLayout.SOUTH);
this.getContentPane().add(Principal);

buttonListener = new ActionAdapter() {
public void actionPerformed(ActionEvent e) {
  try
  {
  // Envoyer
  if (e.getActionCommand().equals("Envoyer"))
    { message=jtMess.getText();
      myOutputStream.write(convb(message+"\n"));
      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;
      System.exit(-1);
    }
    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));
    }
    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));
    }
    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));
        }
    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));
         }
    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));
        }
    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));
         }
    if (e.getActionCommand().equals("Liste détaillée des connectés"))
         { myOutputStream.write(convb(".d\n")); }

    if (e.getActionCommand().equals("Liste des pseudos des connectés"))
         { myOutputStream.write(convb(".l\n")); }

    if (e.getActionCommand().equals("Infos sur les salons"))
         { myOutputStream.write(convb(".a\n")); }

    if (e.getActionCommand().equals("Aide"))
         { myOutputStream.write(convb(".he\n")); }
  }
  catch (Exception ex) {}
}};
/*
envoyer.addActionListener(buttonListener);
Quitter.addActionListener(buttonListener);
valider.addActionListener(buttonListener);
rp.addActionListener(buttonListener);
rm.addActionListener(buttonListener);
vp.addActionListener(buttonListener);
vm.addActionListener(buttonListener);
bp.addActionListener(buttonListener);
bm.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"/*telline.cict.fr*/,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();

    while(true) // Boucle infinie permettant au chat de tester les acivités de l'utilisateur
    { if (Online==1)
       {
        try {myOutputStream.write(convb(".z"));}
             catch (Exception ex) {}
               // on lance l'action qui permet l'affichage des connectés.
       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 connectés : \n\r" alors l'afficher dans jtConnecte.
            test=myString.substring(0,25);
            if (test=="Liste des connectés : \n\r")
            {jtConnecte.setText(myString);
            }
            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);
            } catch (Exception ex) {ex.printStackTrace();}
              }
          }
        }
      }
        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)
      { myOutputStream.write(convb(".c "+jtSalon.getText()+"\n"));
        if (jtSalon.getText().equals("0")) jtSalon.setText("Principal");
          else
        if (jtSalon.getText().equals("Principal")) jtSalon.setText("Principal");
          else
        if (jtSalon.getText().equals("1")) jtSalon.setText("Sorties");
          else
        if (jtSalon.getText().equals("Sorties")) jtSalon.setText("Sorties");
          else
        if (jtSalon.getText().equals("2")) jtSalon.setText("Co-Voiturage");
          else
        if (jtSalon.getText().equals("Co-Voiturage")) jtSalon.setText("Co-Voiturage");
          else
        if (jtSalon.getText().equals("3")) jtSalon.setText("Spectacles");
          else
        if (jtSalon.getText().equals("Spectacles")) jtSalon.setText("Spectacles");
          // Si le salon n'est pas un des 4 proposé, on choisit Principal
          else jtSalon.setText("Principal");
      }  // 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;}
  }
}

0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
2 juin 2003 à 11:16
bonjour,
voila je pense que ton erreur se situe a cette ligne:
panelCouleur.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
tu appliques un layout sur 2 containers en meme temps ce qui n est pas possible:
panelCouleur.setLayout(new BoxLayout(panelCouleur,BoxLayout.Y_AXIS)); me semble plus juste

benohite
:big)
0
juanpipo Messages postés 9 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 25 juillet 2003
2 juin 2003 à 11:23
Benohite t'es ENORMEEEEEEEEEEEEE!!!!!!!!
Merci beaucoup ca marche!
0
Rejoignez-nous