Can';t在Eclipse For Java上创建计时器
我试图用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
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;