Point (Editor editor) { JComponent convertComponent = editor.getContentComponent(); // place the light bulb at the corner of the surrounding component JComboBox<?> ancestorCombo = findAncestorCombo(editor); if (ancestorCombo != null) { convertComponent = ancestorCombo; } else { JTextField ancestorTextField = (JTextField)SwingUtilities.getAncestorOfClass(JTextField.class, editor.getContentComponent()); if (ancestorTextField != null) { convertComponent = ancestorTextField; } } Point realPoint = new Point(-(EmptyIcon.ICON_16.getIconWidth() / 2) - 4, -(EmptyIcon.ICON_16.getIconHeight() / 2)); Point p = SwingUtilities.convertPoint(convertComponent, realPoint, editor.getComponent().getRootPane().getLayeredPane()); return new Point(p.x, p.y); }