当前位置: 代码迷 >> Java相关 >> 关于GUI事件的疑义
  详细解决方案

关于GUI事件的疑义

热度:12   发布时间:2016-04-22 21:00:39.0
关于GUI事件的疑问。
本帖最后由 syj247 于 2014-08-14 09:34:38 编辑
有一个按钮,点击按钮后,按钮的内容变成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字符串 
  相关解决方案