private MouseAdapter makeMouseAdapter() {
        return new MouseAdapter() {
            public void mousePressed(MouseEvent e) {

                String theValues = " 123456789";
                JLabel jl = (JLabel) e.getSource();
                String startText = jl.getText();
                String ttText;
                int adjust = 1;

                ttText = jl.getToolTipText(); // Note - no trim here.
                if (ttText != null) {
                    if (ttText.length() == 1) return; // Original definition, or solution.
                    // User-defined answers will have length 2 since a blank is
                    //   another possibility, to allow them to un-set the value.
                } // end if

                // Look for right mouse press.
                int m = e.getModifiers();
                if ((m & InputEvent.BUTTON3_MASK) != 0) adjust = -1;

                if (intState == DEFINING) {
                    int index = theValues.indexOf(startText);
                    index += adjust;
                    if (index > 9) index = 0;
                    if (index < 0) index = 9;
                    jl.setText(theValues.substring(index, index + 1));
                } // end if

                if (intState == SOLVING) {
                    theValues = jl.getToolTipText();
                    int theMax = theValues.length() - 1;
                    int index = theValues.indexOf(startText);
                    index += adjust;
                    if (index > theMax) index = 0;
                    if (index < 0) index = theMax;
                    jl.setText(theValues.substring(index, index + 1));
                    jl.setForeground(Color.blue);
                } // end if
            } // end mousePressed
        };
    }