首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何启动摆动计时器?

如何启动摆动计时器?
EN

Stack Overflow用户
提问于 2018-06-29 01:17:06
回答 1查看 87关注 0票数 1

现在,每当我手动单击一个按钮时,对象都会移动一定的增量,但实际上,一旦单击按钮,它就会自己在屏幕上移动。我在代码中多次尝试调用timer.start();。以及在actionPerformed方法中设置'if‘语句,该语句检查按钮是否被按下,然后调用timer.start()作为结果。但是,它并没有让物体自己移动。

有人能把我引向正确的方向吗?我的代码写得不对吗?或者这个问题是否与java swing计时器有关。

PS。我是java的新手,

这是我的代码的一部分:

代码语言:javascript
复制
 public void actionPerformed(ActionEvent e){

    if (e.getSource() == rightBtn) {    
        objXpos += objMoveIncrement;
        direction.equals("Right");

    }
    if (e.getSource() == leftBtn) {
        direction.equals("Left");
        objXpos -= objMoveIncrement;
    }

    repaint();

}}**编辑计时器应在单击按钮后启动,而计时器允许对象在屏幕上移动

EN

回答 1

Stack Overflow用户

发布于 2018-06-29 01:53:09

这个问题与java swing timer有关。

不是的。

我写的代码对吗?

这就是问题所在。

一旦点击按钮,定时器就会启动

计时器是如何停止的?如果单击“向右”,然后单击“向下”,会发生什么?

如果不知道确切的要求,就很难给出确切的解决方案。

因此,我建议一种解决方案是在程序启动时启动计时器。

然后在每个按钮的ActionListener中更改方向。

然后,当计时器的ActionListner被调用时,您只需根据当前方向移动对象,然后重新绘制对象。

通常情况下,您会使用Key Bindings来处理类似的事情。所以当你按下一个键时,你启动了计时器,当你松开这个键时,你停止了计时器。请查看来自Motion Using the KeyboardMotion With Key Bindings示例,以获得此方法的工作示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51088384

复制
相关文章

相似问题

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