我想实现这样的一个效果:窗体(或面板)中有1个按钮,3秒后自动按下,然后执行相应的事件处理。不知道GUI中是否有js中的onclick()方法,或者用什么其他的方式实现。请指教!

解决方案 »

  1.   

    封装一个BUTTON   子类,然后呢重载DrawItem,在其中根据你设定的状态量进行自绘
      

  2.   

    http://topic.csdn.net/t/20041008/13/3433433.html
      

  3.   

    3秒后自动执行某个事件处理是可以实现的,但我看了一下JButton和AbstractButton源代码,小弟没有找到按钮按下的效果(即深色效果),所以只好通过设置JButton的setBackground将按钮颜色设为深色import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    /**
     * 作者:李 世贵
     * JDK: 1.6
     * 来源: http://blog.csdn.net/lishigui
     * 欢迎转接,请保留作者和来源,谢谢!
     * 2009-4-23 上午16:00:15 
     */
    public class test extends JFrame{
    private JButton button = null;
    public test() {
    super("test");
    button = new JButton("test");
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    action();
    }
    });
    this.getContentPane().add(button);
    setSize(300,200);
    setVisible(true);
    onclick();
    }
    private void onclick(){
    try {
    Thread.currentThread().sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    button.setBackground(new Color(184,201,227));
    try {
    Thread.currentThread().sleep(500);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    button.setBackground(null);
    action();
    }
    private void action(){
    JOptionPane.showMessageDialog(this, "hello!");
    }
    public static void main(String[] args) {
    new test().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
      

  4.   

    2楼所说的类应该是可以的,不过没用过,API也没仔细看过。
    3提供的方法不会用……推荐的网址我看了,是C++的,没太看懂,不过仍然非常感谢!
    5楼的方法很可行,我根据你说的,在AbstractButton类中找到了doClick(int milltime)这个方法,可以直接实现我要的效果,要不是你说道了这个类,我想我不会找到这个办法的。
      

  5.   

    谢谢楼主,也让我也学到了知识啊!!
    小弟刚从事Java开发还不到一年,经验和知识积累还不够,请大家多关照啊!!