用于绘制表单的组件在编译后不会出现

时间:2013-03-03 15:57:34

标签: java netbeans

我正在尝试在java中创建一个聊天程序,但是当我运行服务器表单时出现问题,我以前绘制的组件不会出现。

这是我在表单运行中使用的代码:

public void run() {

                Server s = new Server();
                s.setVisible(true);

                // Etablir la connexion
                try
        {
            ServerSocket ecoute;
            ecoute = new ServerSocket(1111);
            Socket service = null;
            System.out.println("Serveur en attente d'un client !");
            while(true)
            {

                service = ecoute.accept();
                System.out.println("Client connécté !");
                DataInputStream is = new DataInputStream(service.getInputStream());
                                s.jTextArea1.setText("Client dit : " + is.readUTF().toUpperCase());
                service.close();
            }
        }
        catch(IOException e)
        {
            e.printStackTrace();

        }
            }

1 个答案:

答案 0 :(得分:1)

你说这个代码运行时没有任何反应。 public void run()方法的存在告诉我这是一个线程,或者至少是Runnable

由于while(true),如果此线程没有以正确的方式启动,它将不会独立运行;那就是它会占用整个程序。

请致电thread.run();,而不是致电thread.start();。在启动一个与主线程并行运行的新线程之后,这将为您调用run方法。

如果此代码不在某个帖子中,并且您只是偶然使用了public void run(),那么它仍会为您提供相同的问题。

有关详细信息,请参阅Documentation on Threads