各位大虾, 下午好, 小弟遇到如下问题, 还请赐教.
假设有两个类, A是一个窗体, 上面有三个按钮, 分别是"连接", "发送", "接收", 然后有一个类B, 有对应的三个方法, 分别是"connect", "sendMessage", "ReceiveMessage", connect方法连接服务器, sendMesage发送消息给服务器, receiveMessage接收服务器消息.
正常的写法如下:class A  extends JFrame
{
   B b;
   JButton bt1 = new JButton("连接");
   JButton bt2 = new JButton(" 发送");
   JButton bt3 = new JButton("接收");   public A
   {
        b = new b();
   }    //代码"连接"按钮点击
   b.connect();
  
    //代码"发送"按钮点击
   b.connect();
   
    //代码"接收"按钮点击
   b.connect();
  }
class B
{
   public void connect()
  { 
     ...
  }   public void sendMessage()
  { 
     ...
  }   public string getMessage()
  { 
     ...
  }}正常按上面那样写就OK了, 但是因为B是连接网络的, 有时候会阻塞, 那么就有可能在按下"连接"按钮后, 网络连不上, 整个线程处于阻塞状态, 这样窗体就停下来了, 下到网络连接成功后, 才会继续执行后面的代码. 那我想的是, 给B单独开个线程吧, 问题是给B单独开个线程,代码应该如何写呢? 首先A还得能call B的各个方法,在b的run()方法中,写些什么代码呢?写个死循环让B一直保持运行么?难道写成这样子么?class B implements Runable
{
   public void connect()
  { 
     ...
  }   public void sendMessage()
  { 
     ...
  }   public string getMessage()
  { 
     ...
  }
 
 public void run()
 {
    while(true)
   {
    }
 }
}