2016-08-02 3 views
1

У меня есть JCombobox, в котором, когда я выбираю любой из выпадающего списка JCombobox, выбранный элемент открывается, но когда я нажимаю «Custom» среди одного из выпадающего списка, я должен открыть daiolg, здесь daiolg is открытие, но выпадающий список не закрывается. Я хочу скрыть раскрывающийся список, когда я нажимаю «Пользовательский». вот мой пример кода ....Как закрыть раскрывающийся список JCombobox, когда мы нажимаем на таможню?

private PropertyChangeSupport pcs;///here Iam using ActionListener and PopupMenuListener 
public void actionPerformed(ActionEvent ae){ 
if(ae.getSource() instanceof ComboBox) 
{ 
ComboBox comboBox = (ComboBox)ae.getSource(); 
Object selectedItem = comboBox.getSelectedItem(); 
if(selectedItem != null && (!selectedItem.equals("(Custom..)"))) 
{ 
pcs.firePropertyChange("ITEM_SELECTED",getCaption(),null); 
}}} 
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) 
{ 
ComboBox comboBox = (ComboBox)e.getSource(); 
Object repeatedSelectedItem = comboBox.getSelectedItem(); 
if(repeatedSelectedItem != null && repeatedSelectedItem.equals("(Custom..)")) 
{ 
invokeCustomFilterDialog(repeatedSelectedItem, comboBox); 
}} 
private void invokeCustomFilterDialog(Object repeatedSelectedItem, ComboBox comboBox) 
{ 
customFilterDialog.showDialog(); //here Iam opening dailog... 
if(customFilterDialog.isCustomFilterAppliedFlag() == true) 
{     
pcs.firePropertyChange("ITEM_SELECTED",getCaption(),null); 
} 
else 
{comboBox.setSelectedItem(lastSelectedItem);}} 
public void popupMenuCanceled(PopupMenuEvent e) 
{ } 
public void popupMenuWillBecomeVisible(PopupMenuEvent e) 
{ 
ComboBox comboBox = (ComboBox)e.getSource(); 
this.lastSelectedItem = comboBox.getSelectedItem(); 
} 
+3

Чтобы получить необходимую вам помощь, чтобы обеспечить короткий работоспособный пример ([SSCCE] (http://sscce.org)). Я даже не могу скомпилировать код, который вы опубликовали. –

ответ

1

Вы можете использовать SwingUtilities.invokeLater.

Например

public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { 
     final JComboBox comboBox = (JComboBox) e.getSource(); 
     final Object repeatedSelectedItem = comboBox.getSelectedItem(); 
     if (repeatedSelectedItem != null 
       && repeatedSelectedItem.equals("(Custom..)")) { 
      SwingUtilities.invokeLater(new Runnable() { 
        public void run() { 
         invokeCustomFilterDialog(repeatedSelectedItem, comboBox); 
        } 
      }); 

     } 
    } 
+0

Спасибо ... Сработало – srinivas

0

combobox.getUI() setPopupVisible (выпадающий, ложь).

Смежные вопросы