1
我编写了下面的代码,让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,短的,可运行的,可编译的 – mKorbel
有没有理由使用JPanel,因为BasicsPopup ...在默认情况下在API中具有BoxLayout,否则使用JWindow(仅重用一个,HIDE_ON_CLOSE,使用setVisible包装到invokeLater中) – mKorbel