0

ログイン式で始まるプログラムを作成しています。プログラム全体を停止し、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() の修飾子を変更してください。これが発生する理由はありますか?

4

3 に答える 3

2

timerはインスタンス変数であるため、のインスタンスを介してのみアクセスできますMainClass。最初にインスタンスを作成する必要があります。

MainClass mainClass = new MainClass();
mainClass.timer.start();
于 2013-02-22T11:38:24.697 に答える
2

Use new MainClass().timer.start()

You can also do this:

public static void main(String args[]) {
    new MainClass().begin();
}

private void begin() {
    timer.start();
    new JLogin();
}
于 2013-02-22T11:39:50.180 に答える
0

static method(main)はインスタンス変数(timer)を持つことができません

于 2013-02-22T11:42:20.640 に答える