How to keep the popup menu of a JComboBox open on populating it ?

Posted by Stormshadow on Stack Overflow See other posts from Stack Overflow or by Stormshadow
Published on 2010-05-06T05:33:52Z Indexed on 2010/05/06 5:38 UTC
Read the original article Hit count: 256

Filed under:
|
|
|
|

I have a JComboBox on my Panel. One of the popup menu items is 'More' and when I click that I fetch more menu items and add them to the existing list. After this, I wish to keep the popup menu open so that the user realizes that more items have been fetched however, the popup closes. The event handler code I am using is as follows

public void actionPerformed(ActionEvent e)
    {
        if (e.getSource() == myCombo) {
            JComboBox selectedBox = (JComboBox) e.getSource();
            String item = (String) selectedBox.getSelectedItem();
            if (item.toLowerCase().equals("more")) {
                fetchItems(selectedBox);
            }
            selectedBox.showPopup();
            selectedBox.setPopupVisible(true);
        }
    }



private void fetchItems(JComboBox box)
    {
        box.removeAllItems();
        /* code to fetch items and store them in the Set<String> items */
        for (String s : items) {
            box.addItem(s);
        }
    }

I do not understand why the showPopup() and setPopupVisible() methods are not functioning as expected.

© Stack Overflow or respective owner

Related posts about swing

Related posts about java