tipWindow = new Window(frame);
tipWindow = new JWindow(frame);
    private void showTooltip() {        try {            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 + hex_size.width;                }            }            // set tip location            tipWindow.setLocation(tipLoc);            tipWindow.setVisible(true);        } catch (Exception e) {            tipWindow = new Window(frame);        }    }