代码段:
public class menu extends JFrame{
JMenuBar menuBar;
JMenu menu;
JMenuItem item;
JPopupMenu pop; public menu(){
ImageIcon dog = new ImageIcon("blank.jpg");
menuBar = new JMenuBar();
menu = new JMenu("file");
item = new JMenuItem("picture",dog);
menuBar.add(menu);
menu.add(item);
Action cut = new AbstractAction("dog",dog){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
};
setJMenuBar(menuBar); //实现弹出菜单
pop = new JPopupMenu();
pop.add(cut);
getContentPane().addMouseListener(new mouseListener() );
pack();
}
private class mouseListener extends MouseAdapter {
public void mousePressed(MouseEvent event){
if(event.isPopupTrigger()){
pop.show(event.getComponent(),event.getX(),event.getY());
}
}
} public static void main(String a[]){
new menu().show();
}
}为什么我右击界面,没有弹出菜单?
public class menu extends JFrame{
JMenuBar menuBar;
JMenu menu;
JMenuItem item;
JPopupMenu pop; public menu(){
ImageIcon dog = new ImageIcon("blank.jpg");
menuBar = new JMenuBar();
menu = new JMenu("file");
item = new JMenuItem("picture",dog);
menuBar.add(menu);
menu.add(item);
Action cut = new AbstractAction("dog",dog){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
};
setJMenuBar(menuBar); //实现弹出菜单
pop = new JPopupMenu();
pop.add(cut);
getContentPane().addMouseListener(new mouseListener() );
pack();
}
private class mouseListener extends MouseAdapter {
public void mousePressed(MouseEvent event){
if(event.isPopupTrigger()){
pop.show(event.getComponent(),event.getX(),event.getY());
}
}
} public static void main(String a[]){
new menu().show();
}
}为什么我右击界面,没有弹出菜单?
系统在鼠标释放时才触发事件。
只要加mouseReleased方法就好了。