public void run() {
        synchronized (fQuitTimerObject) {
            //
            // Loop forever.
            //
            while (true) {
                while (fQuitTimerStart == false)  {
                    try {
                        fQuitTimerObject.wait();
                        }   
                    catch (InterruptedException e) {}
                    }
                //
                // Thread.sleep() cannot be used here for sleeping, 
                // because fQuitTimerObject is locked here. Therefore
                // use wait() for sleeping.
                //      
                try {
                    fQuitTimerObject.wait(1000);
                    }
                catch (InterruptedException e) {}
                //
                // Check fQuitTimerStart to see if timer is running.
                // If the timer is still running, then decrement
                // fQuitTimerCounter. If fQuitTimerCounter <= 0, 
                // then set Visible to false, so that the quit dialog
                // winodw will disappear.
                //
                if (fQuitTimerStart) {
                    fQuitTimerCounter --;
                    if (fQuitTimerCounter <= 0) 
                        setVisible(false);
                    }
                }
            }
        }