首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >buttonClick触发的动画

buttonClick触发的动画
EN

Stack Overflow用户
提问于 2015-12-01 18:02:43
回答 1查看 97关注 0票数 1

我试图在java中运行一个动画,该动画是通过单击按钮触发的。

下面是我写的代码:

代码语言:javascript
复制
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);
    } 
}

我就是这样用的:

代码语言:javascript
复制
valueButton.addActionListener(new ValueAnimation());

第一次取消定时器后,我没有安装index = 0;,它只执行了一次动画,不管我点击了多少次按钮。

我知道这不是最正确的方法,尤其是在codeDrowing = GUI.externalCodeDrowing;rowHeader = GUI.externalRowHeaderCode;中,但是它是有效的。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-02 08:30:53

在不看代码的情况下,我可以这样想:

代码语言:javascript
复制
yourButton.addActionListener(New ActionListener() {
        public void actionPerformed(ActionEvent e2) {

                if(index<line.length){
                        rowHeader.gotoStartOfLine(codeDrowing, line[index]);
                        index++;
                }else{
                        index = 0;
                }
        }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34027041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档