import java.awt.* ;
import java.awt.event.* ;

class Etykieta extends Label implements Runnable
{
    private volatile boolean dzialanie = true ;
    private int czas = -1 ;

    public Etykieta ()
    {
        super("0:00:00",Label.CENTER) ;
    }

    public void run ()
    {
        while (dzialanie)
        {
            czas++ ;
            int s=czas%60, m=(czas/60)%60, g=czas/3600 ;
            setText(g+(m<10?":0":":")+m+(s<10?":0":":")+s) ;
            try { Thread.sleep(1000) ; }
            catch (InterruptedException ex) { return ; }
        }
    }

    public synchronized void stop()
    {
        dzialanie = false ;
        notify() ;
    }
}

class ZdOkna extends WindowAdapter
{
    Frame okno ;
    Etykieta czas ;

    public ZdOkna (Frame ok, Etykieta cz)
    {
        okno = ok ;
        czas = cz ;
    }

    public void windowClosing (WindowEvent ev)
    {
        czas.stop() ;
        okno.dispose() ;
    }
}

public class WatekCzasowy extends Thread
{
    public static void main (String[] args)
    {
        Frame okno = new Frame("stoper") ;
        okno.setLayout(new BorderLayout()) ;
        Etykieta czas = new Etykieta() ;
        okno.add(czas,BorderLayout.CENTER) ;
        okno.addWindowListener(new ZdOkna(okno,czas)) ;
        okno.setSize(400,80) ;
        okno.setLocation(0,80) ;
        okno.setVisible(true) ;
        new Thread(czas).start() ;
    }
}
