我在Ubuntu 15.04下遇到java 7/8的问题。我参与了一个已经工作了4年的项目,所以修复那里的事情可能会有更大的问题。然而:当我开始使用Ubuntu 15.04时,MouseListener停止工作。我把问题最小化,以明确我的意思:
public class MenuGui {
public MenuGui() {
final JFrame frame = new JFrame("");
JMenuBar bar = new JMenuBar();
JMenu m1 = new JMenu("Start");
JMenuItem i11 = new JMenuItem("Action");
i11.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e) {
JOptionPane.showConfirmDialog(frame, "hi");
}
});
m1.add(i11);
bar.add(m1);
frame.setJMenuBar(bar);
frame.setVisible(true);
}
public static void main(String[] args){
new MenuGui();
}
}
当我在我的机器上运行此示例时,菜单位于gnome菜单上,但单击菜单条目不会执行任何操作。现在的问题是:有没有办法轻松将菜单放回实际的jframe,甚至更好的是ubuntu 15.04的修复程序? 以root身份运行将菜单放回到jframe,它开始正常工作。
答案 0 :(得分:0)
如果不是JMenuItems的专家,我认为你需要一个ActionListener,而不是听老鼠事件。