用Java打印60秒倒计时
我到处都在搜索一些简单的代码,比如在JFrame构造函数上打印60秒。因此,当JFrame运行时,窗口标题将显示从60-0秒开始的倒计时,在我的情况下,该倒计时将关闭。-无需关闭代码 关于以下内容:用Java打印60秒倒计时,java,jframe,seconds,Java,Jframe,Seconds,我到处都在搜索一些简单的代码,比如在JFrame构造函数上打印60秒。因此,当JFrame运行时,窗口标题将显示从60-0秒开始的倒计时,在我的情况下,该倒计时将关闭。-无需关闭代码 关于以下内容: JFrame frame = new JFrame("Window will terminate in: " + java.util.Calendar.SECOND); 当然,上面的代码没有意义,因为它每秒打印当前时间。但是你明白了。只需创建一个计数器,并将计数器初始化为60 设置要每秒调用的计时
JFrame frame = new JFrame("Window will terminate in: " + java.util.Calendar.SECOND);
当然,上面的代码没有意义,因为它每秒打印当前时间。但是你明白了。只需创建一个计数器,并将计数器初始化为60
设置要每秒调用的计时器
public class TimerFrame {
private static JFrame frame = new JFrame();
public static void main(String[] args) {
TimerFrame timerFrame = new TimerFrame();
timerFrame.frame.setVisible(true);
timerFrame.frame.setSize(400,100);
new Timer().schedule(new TimerTask(){
int second = 60;
@Override
public void run() {
frame.setTitle("Application will close in " + second-- + " seconds.");
}
},0, 1000);
}
}
每次将计数减少一,并更新文本
当您达到0时,请在倒计时结束时执行任何操作并停止计时器。尝试以下操作:
int count = 60;
while(count != 0){
try {
countlabel.setText(String.valueOf(count));
count--;
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
使用TimerTask每秒设置JFrame的标题
public class TimerFrame {
private static JFrame frame = new JFrame();
public static void main(String[] args) {
TimerFrame timerFrame = new TimerFrame();
timerFrame.frame.setVisible(true);
timerFrame.frame.setSize(400,100);
new Timer().schedule(new TimerTask(){
int second = 60;
@Override
public void run() {
frame.setTitle("Application will close in " + second-- + " seconds.");
}
},0, 1000);
}
}
到处找?Google上的第二个结果是我已经看到了,但是它每x秒打印一次,这和我想要的不同,但是你可以很容易地根据你的需要调整它。每一秒钟发送一次通知,你就在那里!嗯,使用Thread.sleep不是一个好的做法,因为它会冻结帧直到完成,假设延迟为5秒,它会冻结帧5秒。使用SwingTimer,请参阅Tim B的答案。谢谢您的回答。虽然我在编译代码时遇到了这个错误:[code]错误:类计时器中的构造函数计时器不能应用于给定的类型;new Timer.schedulenew TimerTask{^required:int,ActionListener发现:没有参数我正在使用JDK6,它工作得很好。您复制了代码还是键入了代码?您使用的是什么JDK?确保您使用的是java.util.Timerah我明白了。是的,它工作得很好。非常感谢您的帮助help@DouglasGrealis很高兴我能帮忙!