/*:電子署名:-1791735829:*/
/*:著者ID:自動設定:認証環境のユーザー名*/
/*:認証環境:情報生体システム演習室:*/
/*---------:科目:プログラミング言語II:-----------*/
/*---------:課題番号:10:-----------------------*/
/*:編集:コピペ禁止:コピーペースト機能は動作停止*/
/*:編集環境:環境制限無し:編集作業はどこでも可能*/
/*:Log:収集:作業ログを収集する*/
import java.util.*;
import java.awt.*;
import java.awt.event.*;

public class P10 .............................
{
    Calendar carendar=Calendar.getInstance(Locale.getDefault()); 
    long t0=-1;//t0は過去に描画した時の秒針の値を覚えておくためのフィールド

    class Control extends WindowAdapter{
        public void windowClosing(WindowEvent e){System.exit(0);}
    }
    static public void main(String arg[])
    {
        P10 frame=new P10();
        frame.addWindowListener(frame.new Control());
        frame.setSize(230,120);
        frame.setVisible(true);
        frame.start();
    }
    
    ...................
    public void stop()
    {
         ...................
    }

    public void start()
    {
         ...................
    }

    public void run()
    {
        while(thread!=null){
            long t=System.currentTimeMillis()/1000;//ミリ秒単位なので千で割って秒単位に

            if(t!=t0)
            {//秒が変わったときだけ再描画
                t0=t;
                repaint();
            }    
            try{
                Thread.sleep(100);//0.1秒休む
            }catch(Exception e){/*例外でも何もしない*/}
        }
    }
    
    public void paint(Graphics g)//描画
    {

        carendar.setTimeInMillis(System.currentTimeMillis());//歴法に現在時刻をセット

        int h=carendar.get(Calendar.HOUR_OF_DAY);//24時間制の時間を取得
        int m=carendar.get(Calendar.MINUTE);//分を取得
        int s=carendar.get(Calendar.SECOND);//秒を取得

        //C言語のprinntfみたいな書式付き文字列生成が可能になりました
        String text=String.format("%02d:%02d:%02d\r\n",h,m,s);
        ......文字を大きくして描く.......
    }
}