Можно ли создать пользовательский JMenuItem, содержащий список флажков? Пример является первенствовать меню Фильтр всплывающее:Пользовательский JMenuItem
До сих пор, что я сделал, как это:
JPopupMenu headerPopup = new JPopupMenu();
JMenuItem clearfilter = new JMenuItem ("Clear Filter From Time");
JMenu filter = new JMenu("Number Filter");
filter.add(new JMenuItem("Equals.."));
filter.add(new JMenuItem("Not Equal.."));
JPanel checkBoxItems = new JPanel();
JCheckBox[] checkBoxes = new JCheckBox[200];
initList(checkBoxes);
JList list = new CheckBoxList();
list.setModel(new ListModel(checkBoxes));
JScrollPane scrollPane = new JScrollPane(list);
checkBoxItems.setLayout(new BorderLayout());
checkBoxItems.add(scrollPanel);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 3));
buttonPanel.add(new JPanel());
buttonPanel.add(new JButton("Ok"));
buttonPanel.add(new JButton("Cancel"));
checkBoxItems.add(buttonPanel, BorderLayout.SOUTH);
headerPopup.add(clearfilter);
headerPopup.add(filter);
headerPopup.add(checkBoxItems);
Содержание checkBoxItems панели является JList из JCheckBox и две кнопки. Проблема заключается в том, что курсор находится внутри панели, элемент меню «Фильтр номера» по-прежнему будет выбран, а PopupMenu будет отображаться, даже если курсор уже идет на панель.
Я попытался это, но не работать, любой другой путь ?:
checkBoxItems.addMouseListener(new MouseAdapter()
{
@Override
public void mouseEntered(MouseEvent e)
{
filter.setArmed(false);
filter.setSelected(false);
}
});
Для лучшей помощи рано, опубликовать [SSCCE] (http://sscce.org/). –