У меня на панели есть JComboBox. Одним из элементов всплывающего меню является «Еще», и когда я нажимаю, я выбираю дополнительные пункты меню и добавляю их в существующий список. После этого я хочу оставить всплывающее меню открытым, чтобы пользователь понял, что было выбрано больше элементов, однако всплывающее окно закрывается. Код обработчика событий, который я использую, выглядит следующим образом
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);
}
}
Я не понимаю, почему методы showPopup () и setPopupVisible () не работают должным образом.