java简易电子时钟代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

import java.text.SimpleDateFormat;

public class ClockJFrame extends JFrame{

private Date now=new Date();

Panel buttons=new Panel();

Button button_start=new Button("启动");

Button button_interrupt=new Button("停止");

Clock label=new Clock();

public ClockJFrame() //构造方法

{

super("电子时钟");

this.setBounds(300,240,300,120);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setLayout(new BorderLayout());

this.getContentPane().add("North",label);//初始化一个容器,用来在容器上添加一个标签

this.getContentPane().add("South",buttons);

buttons.setLayout(new FlowLayout());

buttons.add(button_start);

buttons.add(button_interrupt);

setVisible(true);

}

private class Clock extends Label implements ActionListener,Runnable{ private Thread clocker=null;

private Date now=new Date();

public Clock(){

button_start.addActionListener(this);

button_interrupt.addActionListener(this);

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");//可以方便地修改日期格式

String t = dateFormat.format( now );

this.setText(t);

}

public void start(){

if(clocker==null){

clocker=new Thread(this);

clocker.start();

}

}

public void stop(){

clocker=null;

}

public void run(){

Thread currentThread=Thread.currentThread();

while(clocker==currentThread){

now=new Date();

SimpleDateFormat dateFormat = new

SimpleDateFormat("HH:mm:ss");//可以方便地修改日期格式

String t = dateFormat.format( now );

this.setText(t);

try{

clocker.sleep(1000);

}catch(InterruptedException ie){

JOptionPane.showMessageDialog(this,"Thread error:+ie");

}

}

}

public void actionPerformed(ActionEvent e){

if (e.getSource()==button_start) {

clocker = new Thread(this); //重新创建一个线程对象

clocker.start();

button_start.setEnabled(false);

button_interrupt.setEnabled(true);

}

if (e.getSource()==button_interrupt) //单击中断按钮时

{

clocker.stop(); //设置当前线程对象停止标记

button_start.setEnabled(true);

button_interrupt.setEnabled(false);

}

}

}//内部类结束

public static void main(String[] args) {

ClockJFrame time=new ClockJFrame();

}

}

运行结果:

相关文档
最新文档