有一个按钮,点击按钮后,按钮的内容变成001,002,003,004
我的代码如下
button1.addActionListener(new addActionListener(){
public void actionPerformed(ActionEvent e){
do("001");do("002");do("003")
}
});
public void do(String str){
Thread thread = new Thread();
try{
button1.setText(str);
thread.sleep(500);
}catch(Interrupt..... e1){
e1.printStackTrace;
}
}
公司上网机上敲的。效果不好。
现在运行结果是 按钮最后一个值,中间设置都未生效,求大侠指点。
------解决方案--------------------
你要把按钮变为001,002,003,004
button1.addActionListener(new addActionListener(){
public void actionPerformed(ActionEvent e){
do("001,002,003,004");
}
});
------解决方案--------------------
do("003")
貌似这里少了个分号
------解决方案--------------------
别用Thread类的sleep,用Timer类,在构造函数里定义timer= new Timer(500, this);
在action里用e.getSource()==button1的时候,timer.start(),然后else if (e.getSource() == timer) 的时候,再去设置内容就可以了。(把内容放到一个数组里,然后定义一个全局变量,让它递增,再到数组获取对应下标的内容即可。)
------解决方案--------------------
你起了三个线程 并发同时去改Button上的字符串,原则上说,最终Button上是哪个字符串是 不确定的。
do("001");do("002");do("003"); //起了三个线程并发改button字符串