void (@NlsSafe String[] possibleNames) { final EditorComboBoxEditor comboEditor = new StringComboboxEditor(myProject, GroovyFileType.GROOVY_FILE_TYPE, myNameComboBox); myNameComboBox.setEditor(comboEditor); myNameComboBox.setRenderer(new EditorComboBoxRenderer(comboEditor)); myNameComboBox.setEditable(true); myNameComboBox.setMaximumRowCount(8); myListenerList.add(DataChangedListener.class, new DataChangedListener()); myNameComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { fireNameDataChanged(); } }); ((EditorTextField)myNameComboBox.getEditor().getEditorComponent()).addDocumentListener(new DocumentListener() { @Override public void documentChanged(@NotNull DocumentEvent event) { fireNameDataChanged(); } }); contentPane.registerKeyboardAction(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> IdeFocusManager.getGlobalInstance().requestFocus(myNameComboBox, true)); } }, KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.ALT_MASK), JComponent.WHEN_IN_FOCUSED_WINDOW); for (var possibleName : possibleNames) { myNameComboBox.addItem(possibleName); } }