comboBox.putClientProperty(BasicLookAndFeel.DONT_CANCEL_POPUP, Boolean.TRUE);
  public void installUI(JComponent c)  {    super.installUI(c);    if (c instanceof JComboBox)      {        isMinimumSizeDirty = true;	comboBox = (JComboBox) c;	installDefaults();        // Set editor and renderer for the combo box. Editor is used        // only if combo box becomes editable, otherwise renderer is used        // to paint the selected item; combobox is not editable by default.        ListCellRenderer renderer = comboBox.getRenderer();        if (renderer == null || renderer instanceof UIResource)          comboBox.setRenderer(createRenderer());        ComboBoxEditor currentEditor = comboBox.getEditor();        if (currentEditor == null || currentEditor instanceof UIResource)          {            currentEditor = createEditor();            comboBox.setEditor(currentEditor);          }         editor = currentEditor.getEditorComponent();	installComponents();	installListeners();        if (arrowButton != null)          configureArrowButton();        if (editor != null)          configureEditor();        comboBox.setLayout(createLayoutManager());        comboBox.setFocusable(true);	installKeyboardActions();      }  }