我正在尝试在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;
,但它正在发挥作用。有什么建议吗?
答案 0 :(得分:0)
不看代码,这就是我能想到的:
yourButton.addActionListener(New ActionListener() {
public void actionPerformed(ActionEvent e2) {
if(index<line.length){
rowHeader.gotoStartOfLine(codeDrowing, line[index]);
index++;
}else{
index = 0;
}
}
});