private void changeComboBox( final @CheckForNull JComboBox<E> oldCB, final @CheckForNull JComboBox<E> newCB, final boolean update) { if (newCB == oldCB) return; ComboBoxEditor oldCBE = null; if (null != oldCB) { oldCB.removePropertyChangeListener("editor", listener); oldCBE = oldCB.getEditor(); oldCB.setEditor(((AbstractComboBoxBrowser<?>.DecoratingComboBoxEditor) oldCBE).getEditor()); } this.comboBox = newCB; ComboBoxEditor newCBE = null; if (null != newCB) { newCB.updateUI(); // ensure comboBoxEditor is initialized newCBE = new DecoratingComboBoxEditor(newCB.getEditor()); newCB.setEditor(newCBE); newCB.addPropertyChangeListener("editor", listener); } changeEditor(oldCBE, newCBE, update); }