我试图在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;中,但是它是有效的。有什么建议吗?
发布于 2015-12-02 08:30:53
在不看代码的情况下,我可以这样想:
yourButton.addActionListener(New ActionListener() {
public void actionPerformed(ActionEvent e2) {
if(index<line.length){
rowHeader.gotoStartOfLine(codeDrowing, line[index]);
index++;
}else{
index = 0;
}
}
});https://stackoverflow.com/questions/34027041
复制相似问题