Java计时器问题 现在程序是从系统当前时间开始计时 我想修改为从00:00:00开始计时 怎么弄呀?(其它不变)
现在程序是从系统当前时间开始计时我想修改为从00:00:00开始计时就是初始时间为这个0时0分0秒修改后还要一秒一秒地计时谢谢了!代码:importjava.awt.*;...
现在程序是从系统当前时间开始计时 我想修改为从00:00:00开始计时 就是初始时间为这个 0时0分0秒 修改后还要 一秒一秒地计时
谢谢了!
代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
public class Time
{ public static void main(String args[])
{ TimeWin Win=new TimeWin();
}
}
class TimeWin extends Frame implements ActionListener
{ TextField text;
Button bStart,bStop,bContinue;
Timer time;
int n=0,start=1;
TimeWin()
{time=new Timer(1000,this);//TimeWin对象做计时器的监视器。
text=new TextField(10);
bStart=new Button("开始计时");
bStop=new Button("暂停计时");
bContinue=new Button("继续计时");
bStart.addActionListener(this);
bStop.addActionListener(this);
bContinue.addActionListener(this);
setLayout(new FlowLayout());
add(bStart);
add(bStop);
add(bContinue);
add(text);
setSize(500,100);
validate();
setVisible(true);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==time)
{ java.util.Date date=new java.util.Date();
String str=date.toString().substring(11,19);
text.setText("时间:"+str);
}
else if(e.getSource()==bStart)
{ time.start();
}
else if(e.getSource()==bStop)
{ time.stop();
}
else if(e.getSource()==bContinue)
{ time.restart();
}
}
} 展开
谢谢了!
代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
public class Time
{ public static void main(String args[])
{ TimeWin Win=new TimeWin();
}
}
class TimeWin extends Frame implements ActionListener
{ TextField text;
Button bStart,bStop,bContinue;
Timer time;
int n=0,start=1;
TimeWin()
{time=new Timer(1000,this);//TimeWin对象做计时器的监视器。
text=new TextField(10);
bStart=new Button("开始计时");
bStop=new Button("暂停计时");
bContinue=new Button("继续计时");
bStart.addActionListener(this);
bStop.addActionListener(this);
bContinue.addActionListener(this);
setLayout(new FlowLayout());
add(bStart);
add(bStop);
add(bContinue);
add(text);
setSize(500,100);
validate();
setVisible(true);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==time)
{ java.util.Date date=new java.util.Date();
String str=date.toString().substring(11,19);
text.setText("时间:"+str);
}
else if(e.getSource()==bStart)
{ time.start();
}
else if(e.getSource()==bStop)
{ time.stop();
}
else if(e.getSource()==bContinue)
{ time.restart();
}
}
} 展开
3个回答
展开全部
我swing差不多都忘了,你的00控制用DecimalFormat这个类,可以参考JDK中文帮助文档关于它的方法;
DecimalFormat format = new DecimalFormat("00");
String abc ="1";
String a = format.format(abc).toString();
System.out.println(a);
不用GUI的思路:
实例化一个DecimalFormat的对象f,定义小时分秒为三个字符串变量;
从秒开始,用for循环,循环体是{秒++;if(秒==60){分+=1;秒=0}if(分==60){小时+=1;分=0}if(小时==24){小时=0},System.out.print(f.format(小时) + “:”+f.format(分) “:”+f.format (秒));System.out.print("\r");这个\r是光标移动到小时第一个数字前面,以至于时间循环覆盖造成原位置变化的效果。Thread.Sleep(1000);这个是1秒间隔的设置注意导入Thread类}
这个思路已经完成了代码的90%了,剩下的是你自己根据这个思路边查看JDK边写程序,如果直接给你代码会害了你。用GUI效果就是把System.out.print改成类似text.setText();
DecimalFormat format = new DecimalFormat("00");
String abc ="1";
String a = format.format(abc).toString();
System.out.println(a);
不用GUI的思路:
实例化一个DecimalFormat的对象f,定义小时分秒为三个字符串变量;
从秒开始,用for循环,循环体是{秒++;if(秒==60){分+=1;秒=0}if(分==60){小时+=1;分=0}if(小时==24){小时=0},System.out.print(f.format(小时) + “:”+f.format(分) “:”+f.format (秒));System.out.print("\r");这个\r是光标移动到小时第一个数字前面,以至于时间循环覆盖造成原位置变化的效果。Thread.Sleep(1000);这个是1秒间隔的设置注意导入Thread类}
这个思路已经完成了代码的90%了,剩下的是你自己根据这个思路边查看JDK边写程序,如果直接给你代码会害了你。用GUI效果就是把System.out.print改成类似text.setText();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询