我定义了一个JMenuItem,
JMenuItem lookMenuItem = new JMenuItem("查看") ;
然后把他添加到JPopupMenu对象中,
JPopupMenu clickTableMenu = new JPopupMenu() ;
clickTableMenu.add(lookMenuItem) ;并给lookMenuItem增加了一个鼠标事件监听器
lookMenuItem.addMouseListener(new MouseListener(){
        public void mouseClicked(MouseEvent e) {
                lookMenuItem_mouseClicked(e) ;}
        public void mousePressed(MouseEvent e) {}
        public void mouseReleased(MouseEvent e) {}
        public void mouseEntered(MouseEvent e){}
        public void mouseExited(MouseEvent e){}
        }) ;但是点击在弹出菜单中点击"查看"JMenuItem时,不执行mouseClicked,但是执行mousePressed和 mouseReleased,不知道是为什么?哪位大侠帮忙解答一下,不胜感激!!!

解决方案 »

  1.   

    建议你不要用mouseClicked事件,用actionPerformed事件
    lookMenuItem.addActionListener(this);
    public void actionPerformed(ActionEvent evt){
        Object source = evt.getSource();
        if (source == lookMenuItem) {
            lookMenuItem_mouseClicked(e)
        }
    }
      

  2.   

    JMenu fileMenu = new JMenu("File");
          JMenuItem openItem = new JMenuItem("Open");
          openItem.addActionListener(new
             ActionListener()
             {
                public void actionPerformed(ActionEvent event)
                {
                   openFile();
                }
             });
          fileMenu.add(openItem);      JMenuItem exitItem = new JMenuItem("Exit");
          exitItem.addActionListener(new
             ActionListener()
             {
                public void actionPerformed(ActionEvent event)
                {
                   System.exit(0);
                }
             });
          fileMenu.add(exitItem);      JMenuBar menuBar = new JMenuBar();
          menuBar.add(fileMenu);
          setJMenuBar(menuBar);