private CS355Frame(CS355Controller c, ViewRefresher viewRefresher, MouseListener mouseListener, MouseMotionListener mml) 
    {
        this.viewRefresher = viewRefresher;
        initComponents();
        controller = c;
        RedrawRoutine r = RedrawRoutine.inst();
        r.initialize(canvas1, viewRefresher);
        canvas1.addKeyListener(this);
        jButton1.addKeyListener(this);
        jButton2.addKeyListener(this);
        jButton3.addKeyListener(this);
        jButton4.addKeyListener(this);
        jButton5.addKeyListener(this);
        jButton6.addKeyListener(this);
        jButton7.addKeyListener(this);
        jButton8.addKeyListener(this);
        jButton9.addKeyListener(this);
        jButton10.addKeyListener(this);
        jButton11.addKeyListener(this);
        jScrollBar1.addKeyListener(this);
        jScrollBar2.addKeyListener(this);
        canvas1.addMouseListener(mouseListener);
        canvas1.addMouseMotionListener(mml);
        setSelectedColor(new Color(128,128,128,0));
        keyPollingThread = new Thread(new pollingThread(this));
        keyPollingThread.start();
    }