我遇到一个问题是我在编写socket 时突然引起了我的思考
我想问的是窗口(JFrame) 一旦显示出来是不是也做为一个单独的线程运行.
还有窗口(JFrame)中的事件是不是也是也有一个线程与之对应
------解决方案--------------------
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的控制。