JPopupMenu 怎么设置 鼠标 移出按钮,弹出菜单 自动收缩啊?新谢谢大家了~!!!

解决方案 »

  1.   

    JPopupMenu 印象中是个弹出菜单你的意思是?点击右键弹出菜单还是什么?
      

  2.   


    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class TestJPopupMenu { /**
     * @param args
     */
    public static void main(String[] args) {
    MyJframe test = new MyJframe();
    }}
    class MyJframe extends JFrame {
        JPopupMenu jPopupMenu1 = new JPopupMenu();
        JMenuItem insertMenu = new JMenuItem();
        JMenuItem updateMenu = new JMenuItem();
        JMenuItem deleteMenu = new JMenuItem();
        
        JButton yes = new JButton();
        
        public MyJframe() {
            try {
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }
        
        private void jbInit() {
         this.setSize(300,400);
         this.getContentPane().setLayout(null);
         this.setLocationRelativeTo(null);
        
            insertMenu.setText("增加");
            updateMenu.setText("更新");
            deleteMenu.setText("删除");
            
            jPopupMenu1.add(insertMenu);
            jPopupMenu1.add(updateMenu);
            jPopupMenu1.add(deleteMenu);
        
         this.yes.setBounds(80, 50, 200, 200);
         this.yes.addMouseListener(new MyJframe_actionAdapter(this));
         this.getContentPane().add(yes);
        
         this.setVisible(true);
        }
        
        //点击时调用
        public void yes_actionPerformed(MouseEvent e) {
         jPopupMenu1.show(this.yes,e.getX(), e.getY());
        }
        
        //离开
        public void exited(MouseEvent e) {
        
        }
    }
    class MyJframe_actionAdapter extends MouseAdapter  {
        private MyJframe adaptee;
        MyJframe_actionAdapter(MyJframe adaptee) {
            this.adaptee = adaptee;
        }    public void mouseClicked(MouseEvent e) {
            adaptee.yes_actionPerformed(e);
        }
        
        public void mouseExited(MouseEvent e) {
         adaptee.exited(e);
        }
    }
    当鼠标移出按钮,菜单马上收回这一需求。看似简单,但有些逻辑需要判断。
      

  3.   

    方法里面没内容,啊  //离开
        public void exited(MouseEvent e) {
            
        }怎么可能自动收回呢!!!分给你了,问题还没解决呢!!!