我想用Timer每秒动态显示 时间??编写程序后,却不能实现,大家帮忙解决一下?谢谢 代码如下:import java.util.Timer;
import java.util.TimerTask;
import java.util.Calendar;
public class MyTimer
{
Timer timer;
MyTimer()
{
timer = new Timer();
timer.schedule(new TiTask(),1000);
}
class TiTask extends TimerTask
{
Calendar ca = Calendar.getInstance();
public void run()
{
System.out.println(ca.get(Calendar.YEAR)+"年"+ca.get(Calendar.MONTH)+"月"+ca.get(Calendar.DAY_OF_MONTH)+" "+ca.get(Calendar.HOUR_OF_DAY)+"时"+ca.get(Calendar.MINUTE)+"分"+ca.get(Calendar.SECOND)+"秒");
System.exit(0);
}
}
public static void main(String[] args)
{
MyTimer obj = new MyTimer();
}
}
import java.util.TimerTask;
import java.util.Calendar;
public class MyTimer
{
Timer timer;
MyTimer()
{
timer = new Timer();
timer.schedule(new TiTask(),1000);
}
class TiTask extends TimerTask
{
Calendar ca = Calendar.getInstance();
public void run()
{
System.out.println(ca.get(Calendar.YEAR)+"年"+ca.get(Calendar.MONTH)+"月"+ca.get(Calendar.DAY_OF_MONTH)+" "+ca.get(Calendar.HOUR_OF_DAY)+"时"+ca.get(Calendar.MINUTE)+"分"+ca.get(Calendar.SECOND)+"秒");
System.exit(0);
}
}
public static void main(String[] args)
{
MyTimer obj = new MyTimer();
}
}
public void schedule(TimerTask task,
Date firstTime,
long period)改了改:
import java.io.*;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Calendar;public class MyTimer {
Timer timer; MyTimer() {
timer = new Timer();
TimerTask tt = new TiTask();
timer.schedule(tt, 1000, 2000);
} class TiTask extends TimerTask {
Calendar ca = Calendar.getInstance(); public void run() {
System.out.println(ca.get(Calendar.YEAR) + "年"
+ ca.get(Calendar.MONTH) + "月"
+ ca.get(Calendar.DAY_OF_MONTH) + " "
+ ca.get(Calendar.HOUR_OF_DAY) + "时"
+ ca.get(Calendar.MINUTE) + "分" + ca.get(Calendar.SECOND)
+ "秒"); }
} public static void main(String[] args) {
MyTimer obj = new MyTimer();
while (true) {// 这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
if (ch - 'c' == 0) {
obj.timer.cancel();// 使用这个方法退出任务
}
if (ch - 'q' == 0) {
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.util.Timer;
import java.util.TimerTask;
import java.util.Calendar; class MyTimer {
Timer timer; MyTimer() {
timer = new Timer();
TimerTask tt = new TiTask();
timer.schedule(tt, 1000, 1000);
} class TiTask extends TimerTask { public void run() {
Calendar ca = Calendar.getInstance();//将这个从上一行移动到这里 ,至于为什么你可以好好想想。考虑下程序是怎么编译执行的 System.out.println(ca.get(Calendar.YEAR) + "年"
+ ca.get(Calendar.MONTH) + "月"
+ ca.get(Calendar.DAY_OF_MONTH) + "日"
+ ca.get(Calendar.HOUR_OF_DAY) + "时"
+ ca.get(Calendar.MINUTE) + "分" + ca.get(Calendar.SECOND)
+ "秒"); }
} public static void main(String[] args) {
MyTimer obj = new MyTimer();
while (true) {// 这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
System.out.println("dayin "+ch);
if (ch - 'c' == 0) {
obj.timer.cancel();// 使用这个方法退出任务
}
if (ch - 'q' == 0) {
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
如果 我想让 时间只在原地动态显示 就象 桌面状态栏旁的时间一样 谢谢继续帮小弟解决最后这个问题
import java.util.Timer;
import java.util.TimerTask;
import java.util.Calendar;public class MyTimer {
Timer timer; MyTimer() {
timer = new Timer();
TimerTask tt = new TiTask();
timer.schedule(tt, 1000, 1000);
} class TiTask extends TimerTask { public void run() {
Calendar ca = Calendar.getInstance();
System.out.print("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
System.out.printf(("%4d" + "年"
+ "%2d" + "月"
+ "%2d" + " "
+ "%2d" + "时"
+ "%2d" + "分" + "%2d"
+ "秒"), ca.get(Calendar.YEAR), ca.get(Calendar.MONTH),
ca.get(Calendar.DAY_OF_MONTH), ca.get(Calendar.HOUR_OF_DAY),
ca.get(Calendar.MINUTE), ca.get(Calendar.SECOND));
}
} public static void main(String[] args) {
MyTimer obj = new MyTimer();
while (true) {// 这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
if (ch - 'c' == 0) {
obj.timer.cancel();// 使用这个方法退出任务
}
if (ch - 'q' == 0) {
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
原来加个转移字符就搞定了import java.io.*;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Calendar; class MyTimer {
Timer timer; MyTimer() {
timer = new Timer();
TimerTask tt = new TiTask();
timer.schedule(tt, 1000, 1000);
} class TiTask extends TimerTask { public void run() {
Calendar ca = Calendar.getInstance(); System.out.print(ca.get(Calendar.YEAR) + "年"
+ ca.get(Calendar.MONTH) + "月"
+ ca.get(Calendar.DAY_OF_MONTH) + "日"
+ ca.get(Calendar.HOUR_OF_DAY) + "时"
+ ca.get(Calendar.MINUTE) + "分" + ca.get(Calendar.SECOND)
+ "秒"+'\r'); }
} public static void main(String[] args) {
MyTimer obj = new MyTimer();
while (true) {// 这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
System.out.println("dayin "+ch);
if (ch - 'c' == 0) {
obj.timer.cancel();// 使用这个方法退出任务
}
if (ch - 'q' == 0) {
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}