繁体   English   中英

没有Thread.sleep的Java Swing动画

[英]Java Swing Animation without Thread.sleep

我目前正在制作一个游戏,希望对掉到板上的棋子进行动画处理,但是不能使用Thread.sleep()来中断游戏。 我该如何执行以下代码,使其在再次向下绘制椭圆形之间停顿一段时间。

        for(int counter = 0 ; counter < getMouseX(); counter++) {
            g.fillOval(x*70+10, y, 50, 50);

            //code to wait for 'x' seconds here

        }

另外,在此过程进行期间,有什么方法可以禁用鼠标单击吗?

一种方法是使用Swing计时器。 将“计时器”设置为每秒触发X个计时器,然后在此处执行动画。

它可能看起来像这样:

final Timer t = new Timer(10, new ActionListener(){
   public void actionPerformed(ActionEvent e){
      //do your updating of your variables here
      repaint();
      counter++;
      if(counter >= mouseX){
         t.stop();
      }
   }
});

t.start();

可以在此处的Timer教程中找到更多信息。 您还可以考虑使用类似“ java swing animation”的工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM