diff --git a/platform/util/src/com/intellij/util/ui/JBUI.java b/platform/util/src/com/intellij/util/ui/JBUI.java index 5daf3ef06d4a..6cdd1c7c07cc 100644 --- a/platform/util/src/com/intellij/util/ui/JBUI.java +++ b/platform/util/src/com/intellij/util/ui/JBUI.java @@ -266,9 +266,9 @@ public class JBUI { } /** - * JComboBox comboBox = new ComboBox<>(); - * comboBox.setEditable(true); - * comboBox.setEditor(JBUI.ComboBox.compositeComboboxEditor(new JTextField("Text Field"))); + * JComboBox comboBox = new ComboBox<>(new String[] {"First", "Second", "Third"}); + * comboBox.setEditable(true); + * comboBox.setEditor(JBUI.ComboBox.compositeComboboxEditor(new JTextField(), new JLabel(AllIcons.Icon_CE))); */ public static class ComboBox { public static ComboBoxCompositeEditor compositeComboboxEditor (JComponent ... components) { diff --git a/platform/util/src/com/intellij/util/ui/components/ComboBoxCompositeEditor.java b/platform/util/src/com/intellij/util/ui/components/ComboBoxCompositeEditor.java index e4f1ae0c01aa..6be15521a76f 100644 --- a/platform/util/src/com/intellij/util/ui/components/ComboBoxCompositeEditor.java +++ b/platform/util/src/com/intellij/util/ui/components/ComboBoxCompositeEditor.java @@ -49,6 +49,7 @@ public class ComboBoxCompositeEditor extends JComponent implements ComboBoxEdito for (int i = 0; i < components.length; i ++) { final int index = i; + add(components[i]); myComponents[i] = new ComboBoxCompositeEditor.EditorComponent () { public void setItem(String anObject) { if (components[index] instanceof JTextField) { @@ -96,6 +97,8 @@ public class ComboBoxCompositeEditor extends JComponent implements ComboBoxEdito }; } + invalidate(); + focusableComponentIndex = 0; final JComponent component = myComponents[focusableComponentIndex].getDelegate(); component.setBorder(null); @@ -105,7 +108,7 @@ public class ComboBoxCompositeEditor extends JComponent implements ComboBoxEdito @Override public void focusGained(FocusEvent e) { - parent = component.getParent(); + parent = getParent(); parent.repaint(); } @@ -118,7 +121,7 @@ public class ComboBoxCompositeEditor extends JComponent implements ComboBoxEdito @Override public Component getEditorComponent() { - return myComponents[focusableComponentIndex].getDelegate(); + return this; } @Override