各位大虾, 下午好, 小弟遇到如下问题, 还请赐教.
假设有两个类, 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)
{
}
}
}
假设有两个类, 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)
{
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货