如何在Java中创建计时器?
我是这个编程语言的新手,当我创建计时器时,出现了错误。 首先,我输入:如何在Java中创建计时器?,java,Java,我是这个编程语言的新手,当我创建计时器时,出现了错误。 首先,我输入: import java.util.Timer; 然后创建计时器: public class Road extends JPanel implements ActionListener { Timer Timer = new Timer(); timer.schedule(); Image img = new ImageIcon("res/Road.png").getImage();
import java.util.Timer;
然后创建计时器:
public class Road extends JPanel implements ActionListener {
Timer Timer = new Timer();
timer.schedule();
Image img = new ImageIcon("res/Road.png").getImage();
Player p = new Player();
public void paint(Graphics g){
g = (Graphics2D) g;
g.drawImage(img, p.layer1, 0, null);
g.drawImage(p.img, p.x, p.y, null);
}
public void actionPerformed(ActionEvent e){
p.move();
repaint();
}
}
但在lane timer.schedule()中,我得到一个错误,即这是令牌“schedule”或该令牌后面的标识符上的语法错误
Timer Timer = new Timer();
Timer
未保留,但应更改为Timer
,以匹配Java命名约定
你的代码放错地方了;把它放在一个方法中
最后,不要使用
Util
计时器,使用Swing
计时器。文档。Java不允许您在构造函数或方法之外编写语句。将行移动到cinstructor或任何您想要的方法
Timer timer= new Timer(); //declaration allows
timer.schedule(); // not allowed.
只有声明允许在方法和构造函数之外
作为旁注,静态块允许你做同样的事情,我认为你不需要
我坚信您将在构造函数中编写它,就像Road正在构建时您正在调度计时器一样。首先,对swing程序使用
javax.swing.timer
,而不是java.util.timer
然后
另外,对.start()
的调用需要来自构造函数或某些方法
Timer timer;
public Road(){
timer = new Timer(1000, this);
timer.start();
}
作为旁注。不要覆盖
paint
覆盖paintComponent
并调用super.paintComponent(g)代码>
区分大小写:
Timer Timer = new Timer();
^---- capital T
timer.schedule();
^---lower case T
不能在类的主体中执行代码。您需要在方法、构造函数或实例初始值设定项块中执行此操作。使用javax.swing.Timer
notjava.util.Timer
No它不是保留的。他导入了Timer,保留了它。不过,与类相同的namimg变量是超级控制的。
protected void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.drawImage(img, p.layer1, 0, null);
g2.drawImage(p.img, p.x, p.y, null);
}
Timer Timer = new Timer();
^---- capital T
timer.schedule();
^---lower case T