2014-06-23 4 views
1

Récemment, je développe des applications client/serveur dans Java.Chargement de deux JFrame en même temps

J'ai deux classes, Client.java et Server.java. Les deux étendent JFrame.

Dans la méthode principale de mon MainClass, je l'appelle:

Server server = new Server(); 
Client client = new Client(); 

Je me attendais à la fois serveur et client pour afficher, mais seul serveur apparaît. Merci d'avance.

EDIT:

public class Server extends JFrame{ 
     public Server() 
     { 
      setTitle("Server"); 
      setSize(500,300); 
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      setVisible(true); 

      ServerSocket serverSocket; 
      try { 
       serverSocket = new ServerSocket(8000); 

       Socket socket = serverSocket.accept(); 

      } catch (IOException ex) { 
       System.out.println("error found"); 
      } 
     } 
    } 

    public class Client extends JFrame{ 

     public Client() 
     { 
      setTitle("Client"); 
      setSize(500,300); 
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      setVisible(true); 

      try { 
       Socket socket = new Socket("localhost",8000); 
      } catch (IOException ex) { 
       System.out.println("error found"); 
      } 
     } 
    } 


    public class Haha { 
     public static void main(String[] args) { 
      new Server(); 
      new Client(); 
     } 

    } 

Haha est ma classe principale btw. Merci d'avance! J'ai déclaré ces classes dans 3 fichiers différents. En acceptant votre connexion dans votre thread d'événement Swing, vous bloquez ce même thread en empêchant l'exécution du code suivant.

+1

Sauf si vous postez votre code, nous ne pouvons pas vous dire ce qui ne va pas. Nous n'avons aucun moyen de savoir ce que font vos classes. – azurefrog

+0

@azurefrog: s'il vous plaît jeter un oeil à mon code édité. – user3689529

+0

Ceci est une configuration plutôt inhabituelle. Je sergest pour diviser cela en client et une application serveur. Vous devez comprendre comment utiliser SwingWorker et and invokeLater. – BetaRide

Répondre

4

Regardez dans l'utilisation d'un SwingWorker pour vous aider à appeler le code de blocage dans un thread d'arrière-plan. S'il vous plaît consulter le SwingWorker tutorial pour plus d'informations.

+0

Merci pour votre réponse! – user3689529

Questions connexes