package zhang;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.lang.*;import java.util.*;public class keke extends JFrame implements Runnable { JPanel pnlMain; JLabel lblTime; Thread thdTime; Date dateDisplay; GregorianCalendar gCalendar; String sDate,sTime; public keke(){ super("Runnable接口线程演示"); pnlMain =new JPanel(); lblTime =new JLabel(); Font ft=new Font("宋体",Font.BOLD,15); setContentPane(pnlMain); pnlMain.setLayout(null); pnlMain.add(lblTime); lblTime.setBounds(45, 40, 350, 45); lblTime.setFont(ft); thdTime=new Thread(this); thdTime.start(); setSize(400,150); setVisible(true); } public void run(){ while(thdTime!=null){ displayTime(); } } private void displayTime() { dateDisplay=new Date(); gCalendar=new GregorianCalendar(); gCalendar.setTime(dateDisplay); sDate="日期:"+gCalendar.get(Calendar.YEAR)+"年"+(gCalendar.get(Calendar.MONTH)+1)+"月"+gCalendar.get(Calendar.DATE)+"日"; sTime="间:"+gCalendar.get(Calendar.HOUR)+":"+gCalendar.get(Calendar.MINUTE)+":"+gCalendar.get(Calendar.SECOND); lblTime.setText(sDate+","+sTime); } public static void main(String[] args) { keke rd=new keke(); }}