Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java] Sockets avec interface graphique

Probleme de classes ?

    9 décembre 2007 à 11:34:22

    Bonsoir ou bonne nuit ^^

    Je suis un total néophyte en Java, ainsi, je risque d'avoir besoin de vos conseils pertinents...
    J'ai voulu premièrement me lancer dans les sockets, les requetes HTTP, et j'ai donc créé une classe en Java qui me permettait de recevoir des clients - sur le port 533 mais ce n'est pas important -.
    Ensuite, j'ai commencé à manipuler les interfaces graphiques, et je me suis dit, pourquoi ne pas mélanger les deux ?

    Donc en gros, je manipule des sockets sur une interface.
    Lors de la compilation, XCode me renvoie un message d'erreur :

    1. socke is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener


    ( Ah oui, j'ai oublié, je suis Mac OS 10.5 )

    Donc, le but est de communiquer sur un certain port, et de recevoir les messages ( automatiques ou non ) du serveur ou du client sur l'interface dans un JTextArea
    Bon, je suppose que je n'ai pas inséré les bons packages, ou mal instancié ma classe, enfin je vous laisse voir par vous-même :
    1. import java.io.*;
    2. import java.net.*;
    3. import java.awt.*;
    4. import java.awt.event.*;
    5. import javax.swing.*;
    6. class socke extends JFrame implements ActionListener {
    7. JLabel connexion = new JLabel("Port : ");
    8. JTextField connect = new JTextField(15);
    9. JLabel message = new JLabel("Message de connexion : ");
    10. JTextField mess = new JTextField(15);
    11. JLabel tete = new JLabel("Communication...");
    12. JTextArea zone = new JTextArea(12,25);
    13. public socke()
    14.    {
    15.    setSize(300,300);
    16.    setTitle("Interactivité Client / Serveur");
    17.      Container cf = this.getContentPane();
    18.          cf.setLayout(new FlowLayout());
    19.         cf.add(zone);
    20. }
    21. /*
    22. // en attente de fonctionnement
    23. public void actionPerformed(ActionEvent e)
    24. { if(e.getSource()==nouveau) { } }
    25. */
    26. }
    27. public class sockets {
    28. static final int port=8081;
    29. public static void main (String []argv) throws Exception
    30.    {
    31.    socke f1 = new socke();
    32.     f1.setVisible(true);
    33.         String str;
    34. ServerSocket serv = new ServerSocket(port);
    35. System.out.println("Serveur en attente de connexion sur le port : "+port);
    36. Socket serr=serv.accept();
    37. System.out.println("La connexion Client a été acceptée.");
    38. BufferedReader in=new BufferedReader(new InputStreamReader(serr.getInputStream()));
    39. PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(serr.getOutputStream())),true);
    40. System.out.println("Flux ouvert. Serveur prêt.");
    41. str=in.readLine();
    42. //Bonjour client ^^
    43. out.println("Bonjour client !");
    44. // Fermeture sockets
    45. serr.close();
    46. serv.close();
    47. }
    48. }


    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      9 décembre 2007 à 16:48:56

      Tu commences fort pour débuter le java.
      Pour ton projet je te conseil de séparer ton code de ton interface et le code concernant les clients et le serveur.

      Ensuite pour afficher du texte dans un JTextArea c'est la methode "append()"
      Par exemple :
      1. nomClasse.nomJTextArea.append("bonjour!")

      Bien sur il faut que ton JTextArea soit en "static"

      Au fait, il est deconseiller d'utiliser un port inférieur à 1024 (ceux-ci étant réservé)
      • Partager sur Facebook
      • Partager sur Twitter
        6 mai 2010 à 19:07:32

        Bonjour, je pense que ma question est au alentour de ce que vous parlez en fait je cherche a faire communiquer une interface graphique a une application cleint serveur sas utiliser juste avec des sockets, merci de me repondre comment procerder.
        sarra
        • Partager sur Facebook
        • Partager sur Twitter
          6 mai 2010 à 19:23:32

          Bonjour,
          vu que tu implémente une interface tu dois forcément implémenter toutes ses méthodes et donc actionPerformed

          /*
          // en attente de fonctionnement
          public void actionPerformed(ActionEvent e)
          { if(e.getSource()==nouveau) { } }
          */
          


          devient donc

          // en attente de fonctionnement
          public void actionPerformed(ActionEvent e){ 
              //if(e.getSource()==nouveau) { } 
          }
          
          • Partager sur Facebook
          • Partager sur Twitter
            6 mai 2010 à 21:26:06

            merci pour toi mais j'ai pas compris, moi je cherche comment omplementer une interface graphique et la faire comminiquer a une application client serveur sans utiliser les thread.
            jespere que vous avez compris ma question
            merci.
            sarra
            • Partager sur Facebook
            • Partager sur Twitter

            [Java] Sockets avec interface graphique

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown