2011-03-15 1 views
0

JComboBox имеет add(PopUpMenu) и add(JMenuItem).Подменю в JCombo

Мой класс расширяет JComboBox. Я создаю JPopUpMenu, но он не отображается, когда я нажимаю на JComboBox. Вместо этого ничего не отображается. Есть идеи?

 


    JPopupMenu Pmenu = new JPopupMenu(); 
    JMenu textAndDataMenu = new JMenu("Text and Data"); 

    HashMap textAndData = new HashMap(); 

    public ComboMenu() 
    { 
     super(); 
     setUpTextAndData(); 
     add(Pmenu); //----------this is where I add the menu 

    } 

    public void setUpTextAndData() 
    { 
     textAndData.put("Basic Text Box", TextBox.class); 
     textAndData.put("Clear Text Box", ClearTextBox.class); 
     textAndData.put("Table", Table.class); 
     textAndData.put("Interactive Table", InteractiveTable.class); 
     textAndData.put("Graph", Graph.class); 

     Set textAndDataKeys = textAndData.keySet(); 
     JMenuItem newMenuItem; 
     for(String currKey : textAndDataKeys) 
     { 
      newMenuItem = new JMenuItem(currKey); 
      newMenuItem.addActionListener(this); 
      textAndDataMenu.add(newMenuItem); 
     } 

     Pmenu.add(textAndDataMenu); 
    } 
 

ответ

0

EDIT: Nevermind ... Вы знаете, я не перепутались с этим в то время.

Я думаю, что все, что вам нужно сделать, это:

Pmenu.setInvoker(this); 

перед добавлением его в конструкторе.

+0

Я добавил элементы в JMenus, прежде чем добавлять их в PopUpMenu, чтобы JMenus был подменю. То, что я пытаюсь выполнить, - это JComboBox, когда вы нажимаете на него, вы можете получить доступ к вложенным элементам. Есть идеи, как это сделать? – user489041

+0

Смотрите мое редактирование, я думаю, что я пошел по неверному пути, глядя на него. –