} catch (Exception e) { tipWindow = new Window(frame); }
    private void showTooltip() {        final Point tipLoc = new Point(getLocationOnScreen());        // retrieve tip text        String[] tipText = getTipText(mousePos);        if (tipText == null) {            return;        }                // update tip text        tipWindow.removeAll();        tipWindow.add(new TooltipCanvas(tipText));        tipWindow.pack();                tipLoc.translate(mousePos.x, mousePos.y + 20);        // adjust horizontal location for the tipWindow if it goes off the frame        if (frame.getLocation().x + frame.getSize().width < tipLoc.x + tipWindow.getSize().width + 10) {            if (frame.getSize().width > tipWindow.getSize().width) {                // bound it by the right edge of the frame                tipLoc.x -= tipLoc.x + tipWindow.getSize().width + 10 - frame.getSize().width - frame.getLocation().x;            }            else {                // too big to fit, left justify to the frame (roughly).                // how do I extract the first term of HEX_SIZE to use here?--LDE                tipLoc.x = getLocationOnScreen().x + 84;            }        }        // set tip location        tipWindow.setLocation(tipLoc);        tipWindow.show();    }