buttonClick触发的动画

时间:2015-12-01 18:02:44

标签: java swing timer

我正在尝试在java中运行一个通过按钮点击触发的动画。

这是我写的代码:

import java.awt.event.*;
import java.util.Timer;
import java.util.TimerTask;

public class ValueAnimation implements ActionListener
{
    Timer valueClock;
    CodeDrowingPanel codeDrowing;
    TextLineNumber rowHeader;
    private int index;
    private int[] line = {19,21,22,23};

    public ValueAnimation()
    {
        codeDrowing = GUI.externalCodeDrowing;
        rowHeader = GUI.externalRowHeaderCode;
        index = 0;
    }

    public void actionPerformed(ActionEvent e) 
    {
        valueClock = new Timer();
        valueClock.schedule(new TimerTask()
        {
            public void run()
            {
                if(index<line.length)
                {
                    rowHeader.gotoStartOfLine(codeDrowing, line[index]);
                    index++;
                }
                else
                {
                    valueClock.cancel();
                    index = 0;
                }
            }
        },0,1000);
    } 
}

我正在使用它:

valueButton.addActionListener(new ValueAnimation());

第一次取消定时器后我没有设置index = 0;,无论我点击按钮多少次,它都只执行一次动画。

我知道这不是最正确的方法,特别是使用codeDrowing = GUI.externalCodeDrowing;rowHeader = GUI.externalRowHeaderCode;,但它正在发挥作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不看代码,这就是我能想到的:

yourButton.addActionListener(New ActionListener() {
        public void actionPerformed(ActionEvent e2) {

                if(index<line.length){
                        rowHeader.gotoStartOfLine(codeDrowing, line[index]);
                        index++;
                }else{
                        index = 0;
                }
        }
});