模拟电子时钟,它可以在任何时候被启动或者停止,并可独立运行。这个类称为Clock类,它继承Label类。这个类有一个Thread类型的clocker域,以及start(),stop(),和run()方法,在run()方法的while循环中,每隔一秒就把系统时间显示为label文本。构造方法初始化时,把label设为系统的当前时间。
此题该如何用java编写。(严格按照上面的要求来写)
------解决方案--------------------
LZ给分。
- Java code
import java.awt.Frame;import java.awt.Label;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;public class Test1 { public static void main(String[] args) { Clock clock = new Clock(); Frame f = new Frame(); f.setSize(300, 300); f.add(clock); clock.start(); //自动计时开始 f.setVisible(true); try { Thread.sleep(10000); clock.close(); //10秒后计时停止 } catch (InterruptedException e) { e.printStackTrace(); } }}class Clock extends Label { Clocker cl; public Clock() { cl = new Clocker(); } public void start() { cl.start(); } public void close() { cl.setF(); } class Clocker extends Thread { Date time = null; boolean f = true; public void run() { GregorianCalendar gc = new GregorianCalendar(Locale.CHINA); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); while(f) { Clock.this.setText(sf.format(gc.getTime())); try { Thread.sleep(1000); gc.set(Calendar.SECOND,gc.get(Calendar.SECOND)+1); } catch (InterruptedException e) { e.printStackTrace(); } } } public void setF() { f = false; } }}