java中 按钮触发循环事件后 所有按钮都不响应了

importjava.awt.*;importjava.awt.event.*;publicclassComplexLayoutsextendsMyFrameimplem... import java.awt.*;
import java.awt.event.*;

public class ComplexLayouts extends MyFrame implements ActionListener
{
private static Button[] bt =new Button[6];
private static Panel p;
public ComplexLayouts(String str)
{
super(str);
}
/**
* @param args
*/
public static void main(String[] args)
{

// TODO 自动生成方法存根
ComplexLayouts cl = new ComplexLayouts("ComplexLayouts!");

p = new Panel();
p.setBackground(Color.lightGray);
p.add(bt[0]);
p.add(bt[1]);
cl.add(p,BorderLayout.NORTH);
cl.add(bt[2],BorderLayout.WEST);
cl.add(bt[3],BorderLayout.CENTER);

}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bt[3])
{
System.exit(0);
}
else
{
int i = 0;
while(true)
{
try
{
Thread.sleep(250);
}
catch(Exception a)
{
}
if(i == 0)
{
bt[3].setBackground(Color.red);
i++;
}
else
{
bt[3].setBackground(Color.yellow);
i--;
}
}
}
}

}
出现个面板 有4个按钮 点击"fire"按钮后 最后一个按钮的背景色红黄交替变化(模仿警报)是循环事件 可是触发该事件后 所有按钮都不能点了
不指导该怎么处理 请高人解答
在线等有没说清楚的告诉我 我再补充
我要问的是解决方法 不说解决方法的一律不采纳

能不能吧具体的代码写上 ?

我就服了! 我知道问题出在哪 我不知道该怎么改 明白吗?

就好像我得病了你告诉我该吃药 我知道得吃药 我要具体的什么药

这个问题我要的是改成的代码 不是要分析的原因 郁闷死了 光说不练
展开
 我来答
linkzq
2008-07-20 · TA获得超过736个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:0
展开全部
上面两位分析的是对的,看你代码中的这一行:
Thread.sleep(250);
你是采用单线程设计的程序,当执行这一句之后,程序当sleep,如果此时你点击按钮,它当然没有响应了,而且,这种sleep还得无限死循环的执行下去。
需要将这一部分第250毫秒就改变一次颜色的代码放到一个新的线程中执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duzc2
2008-07-20 · TA获得超过2512个赞
知道大有可为答主
回答量:1987
采纳率:50%
帮助的人:2075万
展开全部
大量计算的需单独线程,才可以不影响界面。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jgjcq
2008-07-20 · TA获得超过270个赞
知道小有建树答主
回答量:434
采纳率:0%
帮助的人:211万
展开全部
你把需要大量计算的逻辑放到一个单独的线程里面去
点击按钮让线程start()就成
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式