Can';t在Eclipse For Java上创建计时器

Can';t在Eclipse For Java上创建计时器,java,eclipse,timer,arguments,Java,Eclipse,Timer,Arguments,我试图用Java制作一个简单的游戏,其中有很多东西在移动。我看了一段关于移动图形的视频,视频中说我需要一个计时器()来移动屏幕上的东西。当我尝试以timer t=new timer(5,这个)的形式制作计时器时它不会工作。它告诉我方法Timer()不应该有任何参数。能给我一些帮助吗?顺便说一下,我只编写了两周的java代码,所以我是一个非常初学者。这是我的密码: package FlappyDodgeGame; import java.awt.event.ActionEvent; imp

我试图用Java制作一个简单的游戏,其中有很多东西在移动。我看了一段关于移动图形的视频,视频中说我需要一个计时器()来移动屏幕上的东西。当我尝试以
timer t=new timer(5,这个)的形式制作计时器时它不会工作。它告诉我方法
Timer()
不应该有任何参数。能给我一些帮助吗?顺便说一下,我只编写了两周的java代码,所以我是一个非常初学者。这是我的密码:

   package FlappyDodgeGame;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JFrame;

public class Game extends JFrame implements ActionListener{

    static int width = 1000, height = width * 9 / 12;

    public static int birdX = width * 1 / 5, birdY = height / 2, birdSize = 75;

    public static double birdVel = 0, birdVelDelta = 0.1;


    //error: The constructor Timer(int, Game) is undefined. quick fix: Remove arguments to match 'Timer()'.
    Timer timer = new Timer(5, this);

    public static void main(String args[]){
        final JFrame jframe = new JFrame("Test");
        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jframe.setSize(width, height);
        jframe.setResizable(false);
        jframe.setVisible(true);
        jframe.setLocationRelativeTo(null);
        final GUI gui = new GUI();
        jframe.add(gui);
        jframe.addMouseListener(new MouseListener(){

            public void mouseClicked(MouseEvent arg0) {
                // TODO Auto-generated method stub
            }

            public void mouseEntered(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

            public void mouseExited(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

            public void mousePressed(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

            public void mouseReleased(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

        });
    }


    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub


    }


}

若你们想在屏幕上移动一些东西,你们需要使用一个扩展JPanel的类,然后实现paintComponent(图形g)

之后,您可以将其添加到JFrame中

frame.add(new Game());

您使用了错误的计时器类:

import java.util.Timer;
还有另一个计时器类,
javax.swing.Timer
,它有一个双参数构造函数。这个类的javadoc是


对于Swing应用程序,使用
javax.Swing.Timer
而不是
java.util.Timer
的最大优势在于,当Swing计时器调用您的侦听器时,它会在Swing事件线程上执行,这意味着您可以立即调用所有UI对象上的方法。

谢谢,这真的很有帮助!谢谢你@本杰明如果这解决了您的问题,您应该通过单击答案旁边的复选标记来接受此答案,并向上投票。谢谢
import java.util.Timer;