gpt4 book ai didi

java - Swing 计时器不启动

转载 作者:搜寻专家 更新时间:2023-11-01 02:49:10 24 4
gpt4 key购买 nike

我正在尝试使用 Swing Timer 重复打印一条语句,但该语句没有打印出来!

我犯了什么错误?

    import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class SwingTimer implements ActionListener {

Timer timer;

public static void main(String[] args) {
SwingTimer obj = new SwingTimer();
obj.create();
}

public void create() {
timer = new Timer(1000, this);
timer.setInitialDelay(0);
timer.start();
}

@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Hello using Timer");
}
}

最佳答案

javax.swing.Timer 可能作为守护线程启动:它不会让 jvm 保持 Activity 状态,你的主要结束,jvm 退出。它将计时器事件发布到 GUI 事件队列,该队列在第一个对话框或框架可见时启动。

您必须创建一个 JFrame,并使其可见或使用 java.util.Timer如果您根本不需要窗口系统。

下面的代码展示了如何使用java.util.Timer :

import java.util.Timer;
import java.util.TimerTask;

public class TimerDemo extends TimerTask {

private long time = System.currentTimeMillis();

@Override public void run() {
long elapsed = System.currentTimeMillis() - time;
System.err.println( elapsed );
time = System.currentTimeMillis();
}

public static void main( String[] args ) throws Exception {
Timer t = new Timer( "My 100 ms Timer", true );
t.schedule( new TimerDemo(), 0, 100 );
Thread.sleep( 1000 ); // wait 1 seconde before terminating
}
}

关于java - Swing 计时器不启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14920359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com