我遇到一个问题是我在编写socket 时突然引起了我的思考
         
我想问的是窗口(JFrame) 一旦显示出来是不是也做为一个单独的线程运行.
还有窗口(JFrame)中的事件是不是也是也有一个线程与之对应

解决方案 »

  1.   

    JFrame当然是一个线程,里面的事件默认情况都是在JFrame这个主线程里面。
    所以我们在处理事件的时候,一般都会另起一个thread。
    比如现在有一个上传文件的GUI,那么在“上传”按钮的actionPerformed(ActionEvent evt)里就应该是
    {
        String cmd=evt.getActionCommand();
         if(cmd.equals("上传"))
       {
                       Thread thread;
          thread=new Thread(){
            public void run(){
             uploadFile(path);
    }
       };  
       thread.start();
    }
    }
    如果你都是在一个线程里的话,你会发现当你点完长传按钮后,要等到文件传输结束,你才能从新获得对GUI的控制。