此程序的目的是从另一个用户获取一个号码,然后倒计时。
我还没有完成程序,因为我需要使用的方法不存在。
我正在尝试启动计时器,但我找不到方法start()&任何其他方法。
我是否需要导入其他课程? ----->定时器;
package timerprojz;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class TimeProjz extends JFrame {
JLabel promptLabel, timerLabel;
int counter;
JTextField tf;
JButton button;
Timer timer;
public TimeProjz() {
setLayout(new GridLayout(2, 2, 5, 5)); // 2 row 2 colum and spacing
promptLabel = new JLabel("Enter seconds", SwingConstants.CENTER);
add(promptLabel);
tf = new JTextField(5);
add(tf);
button = new JButton("start timeing");
add(button);
timerLabel = new JLabel("watting...", SwingConstants.CENTER);
add(timerLabel);
Event e = new Event();
button.addActionListener(e);
}
public class Event implements ActionListener {
public void actionPerformed(ActionEvent event) {
int count = (int) (Double.parseDouble(tf.getText()));
timerLabel.setText("T ime left:" + count);
TimeClass tc = new TimeClass(count);
timer = new Timer(1000, tc);
timer.start(); <-----------------can not find symbol
}
}
}
答案 0 :(得分:3)
时间没有启动方法。你应该像这样使用它:
import java.util.Timer;
import java.util.TimerTask;
/**
* Simple demo that uses java.util.Timer to schedule a task
* to execute once 5 seconds have passed.
*/
public class Reminder {
Timer timer;
public Reminder(int seconds) {
timer = new Timer();
timer.schedule(new RemindTask(), seconds*1000);
}
class RemindTask extends TimerTask {
public void run() {
System.out.format("Time's up!%n");
timer.cancel(); //Terminate the timer thread
}
}
public static void main(String args[]) {
new Reminder(5);
System.out.format("Task scheduled.%n");
}
}
你可以在run方法中写下你的逻辑。
答案 1 :(得分:2)
多个问题:
您在Swing中使用java.util.Timer
!使用java.swing.Timer
代替具有您需要的start()
功能:)。
除了没有start()
函数java.util.Timer
之外,还没有这种类型的构造函数:new Timer(1000, tc)
其中java.swing.Timer
有:
Timer(int delay, ActionListener litener)
Timer
函数中actionPerformed()
的实例创建样式也是错误的。查看How to Use Swing Timers教程和示例。
建议使用Swing计时器而不是通用计时器用于GUI相关任务,因为Swing计时器都共享相同的预先存在的计时器线程,并且GUI相关任务自动执行event-dispatch thread
。但是,如果您不打算从计时器触摸GUI,或者需要执行冗长的处理,则可以使用通用计时器。
答案 2 :(得分:1)
您正在尝试使用Java.util.Timer
。
改为使用Java.swing.Timer
,或使用TimerTask
。
答案 3 :(得分:0)
如果您使用的是Timer类,则应调用schedule方法,如:
Timer time = new Timer();
time.schedule(task, time);
答案 4 :(得分:0)
import javax.swing.Timer;
这将解决问题
导入import java.util.Timer;