请教:怎么实现让一个按钮点击后置灰一段时间?
尽量把思路写详细点
多谢

解决方案 »

  1.   

    应该说的是web的吧?
    纯页面的定时器我不会。
    如果我做的话我会在页面设一个标记值,这个值通过后台来改变。
    请求发送后吧标记值改为false,在响应返回之前都设置为false,响应之后设置为true。
      

  2.   

    我晕。那就太简单了。。
    设置一个线程专门跑定时器控制开关就行了。
    还是标记位,标记位为true的时候为亮的,允许点,点过之后变为false。不允许点。
    定时器每隔一定时间把这个变成true。
    这个我以前做射击类游戏的时候做过。
      

  3.   

    单击后开一个线程 run里面设置setEnabled(false) 接着睡眠count秒(过一阵子) 恢复启用该JButton :true
      

  4.   

    final JButton jbt = new JButton();
    // jbt.setIcon(icon);
    jbt.addMouseListener(new MouseListener(){ @Override
    public void mouseClicked(MouseEvent arg0) {
    // TODO Auto-generated method stub
    jbt.setEnabled(false);
    Timer timer = new Timer();
    timer.schedule(new MyTask(), 1000*60);

    } class MyTask extends java.util.TimerTask{
    @Override
    public void run() {
    jbt.setEnabled(true);

    }
    } @Override
    .......
    });
    麻烦看下这么搞的话为啥会出现用户多次点击按钮后设定的enable的时间不起作用
    这个问题在哪?
      

  5.   

    囧,button灰掉了还可以监听到对他的点击事件
      

  6.   

    使用ActionListener和javax.swing.Timer,
      

  7.   

    这个是业务问题吧,禁用按钮多长时间是根据具体业务来的,当业务进行时为了不出现重复操作就禁止点击,等业务完成则回复点击。但是至灰并不代表禁止点击,判断还是要自己写的。
    如果是web的话把属性设置为disabled就可以了,似乎swing也有这个属性。
      

  8.   

    jbt.addActionListener(new ActionListener(){ @Override
    public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub
    System.out.println("press");
    jbt.setEnabled(false);
    Timer timer = new Timer();
    timer.schedule(new TimerTask(){ @Override
    public void run() {
    // TODO Auto-generated method stub
    jbt.setEnabled(true);
    }

    }, 3*1000);
    timer = null;
    }

    });