private Canvas()
        {
            if (System.getProperty("com.horstmann.codecheck") == null)
            {
                frame = new JFrame();
                if (!System.getProperty("java.class.path").contains("bluej"))
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(component);
                frame.pack();
                frame.setLocation(LOCATION_OFFSET, LOCATION_OFFSET);
                frame.setVisible(true);
            }
            else
            {
                final String SAVEFILE ="canvas.png";
                final Thread currentThread = Thread.currentThread();
                Thread watcherThread = new Thread() 
                    {
                        public void run()
                        {
                            try
                            {
                                final int DELAY = 10;
                            
                                while (currentThread.getState() != Thread.State.TERMINATED)
                                {
                                    Thread.sleep(DELAY);
                                }
                                saveToDisk(SAVEFILE);
                            }
                            catch (Exception ex)
                            {
                                ex.printStackTrace();
                            }
                        }
                    };
                watcherThread.start();
            }
        }