球不会在屏幕周围移动

时间:2014-01-22 18:06:39

标签: java swing jpanel paintcomponent

您好我正在创建一个迷你网球比赛但由于某种原因,球不会在屏幕上移动。我设法创造了蝙蝠,他们都移动了。球需要从球棒上反弹并向任何方向前进。任何想法??

1 个答案:

答案 0 :(得分:2)

动画需要的是javax.swing.Timer。这是基本构造

Timer(int delay, ActionListener listener)

对于每隔这么多毫秒,计时器将触发ActionEvent,这将在你传递给它的ActionListener中被监听。因此,在您的情况下,您需要调用ball.move()方法让ball动画化。

下面的代码是我添加的 all MyDrawingPanel的构造函数,它动画很好。注意:我使用了昨天发布的不同问题的代码,因此如果您进行了更改,我无法保证您当前代码的结果相同。

    Timer timer = new Timer(20, new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            ball.move();
            repaint();
        }
    });
    timer.start();

你当然可以有一个单独的按钮,你可以在其中拨打timer.start()timer.stop(),并可能有一个重置按钮,您可以将球设置为默认位置。但是现在,上面的内容应该让你的动画变得生动。