Я написал следующий код, чтобы иметь JPopupMenu, который позволяет несколько вариантов выбора разных элементов. Проблема заключается в том, что, как только мышь входит в одну из отображаемых JCheckboxMenuItems, JPopupMenu закрывается. Эта проблема не возникает, если я заменил JCheckboxMenuItem, например, JLabel, но, конечно же, JLabel не работает для моей цели. Любая идея, что может вызвать эту проблему? Любая идея о том, как можно решить эту проблему лучше? Я прошу прощения за вопрос новичков, но я не разработчик Java. Заранее благодарю за любую помощь.JPopupMenu закрывается, как только мышь входит во встроенный JCheckboxMenuItem
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedborder(),"Select Layers");
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
for (MyAction layer : layers) {
JCheckBoxMenuItem box = new JCheckBoxMenuItem(layer);
box.setIcon(new SquareIcon(myColor));
panel.add(box);
}
JPopup popup = new JidePopup();
popup.add(panel)
JButton button = new JButton("Layers");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
popup.show(button,0,button.getHeight())
}
});
Что делает MyAction? – Berger
Идея без вашего SSCCE/MCVE, короткая, runnable, компилируемая – mKorbel
есть причина использовать JPanel, потому что BasicsPopup ... имеет BoxLayout в API по умолчанию, в противном случае использовать JWindow (использовать только одно, HIDE_ON_CLOSE, играя с setVisible (true/false), завернутый в invokeLater) – mKorbel