让jbutton打开和关闭

时间:2014-10-22 08:22:02

标签: java swing timer jbutton

我的目标是创建一个等待半秒的函数,将jbutton的背景设置为红色一秒钟,然后在此秒之后jbutton将恢复正常。不能做这个工作.. 这是我的功能

 private void paint(final int num){
        Timer timer = new Timer(500, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (num == 1){
                btn.setBackground(Color.black);
                }
            }
        });
        timer.start();
    }

2 个答案:

答案 0 :(得分:1)

启动一个500毫秒的计时器,它会在熄灭时执行两项操作:
- 将颜色更改为红色
- 启动1s计时器,将其颜色更改为正常,当它关闭时

答案 1 :(得分:0)

好吧,这样做(请注意,您可能希望将代码从第一次睡眠开始放入计时器或它在实际应用程序中自己的线程,以避免阻塞运行代码的线程):

public static void main(String[] args) throws Exception {
    final JFrame jf = new JFrame();
    final JButton jButton = new JButton("Hello");
    final Color originalBackground = jButton.getBackground();

    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            jf.getContentPane().add(jButton);
            jf.pack();
            jf.setVisible(true);
        }
    });

    Thread.sleep(500);
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            jButton.setBackground(Color.RED);
        }
    });
    Thread.sleep(1000);
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            jButton.setBackground(originalBackground);
        }
    });