2016-08-02 3 views
1

나는 JCombobox의 드롭 다운 목록에서 하나를 선택하면 선택한 항목이 열리고 있지만 드롭 다운 목록 중 하나에서 "사용자 지정"을 클릭하면 나는 daiolg를 열어야한다. 열지 만 목록이 닫히지 않습니다. 사용자 정의를 클릭하면 드롭 다운을 숨기고 싶습니다. 여기 내 샘플 코드는 ....사용자 정의를 클릭하면 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 (combobox, false);

관련 문제