我创建一个以登录公式开头的程序。我希望让整个程序停止并在5小时后再次显示此登录公式。要使用Timer。
public class MainClass implements ActionListener{
private final Timer timer = new Timer(30000, this);
public static void main(String args[]){
timer.start();
new JLogin();
}
//If time time-out
public void actionPerformed(ActionEvent e) {
timer.stop();
new Mainclass();
}
当我写的时候,它在我调用时显示错误" timer.start()" 。错误说:"在static()中更改timer()的修饰符。 有没有理由发生这种情况?
答案 0 :(得分:2)
timer
是一个实例变量,因此只能通过MainClass
的实例访问它。您需要先创建一个实例:
MainClass mainClass = new MainClass();
mainClass.timer.start();
答案 1 :(得分:2)
使用new MainClass().timer.start()
你也可以这样做:
public static void main(String args[]) {
new MainClass().begin();
}
private void begin() {
timer.start();
new JLogin();
}
答案 2 :(得分:0)
静态方法(main)不能有实例变量(timer)