我做了一个看图程序,里面有3个button.第一个是缩略图,第二个是原图,第三个是让鼠标具有截图的功能.但是我一旦点了第三个按钮后,截图功能就一直在了.我想当我按第一个或者第二个按纽的时候能把mouselistener和mousemotionlister去掉.(我把addlistener()加在了第三个按纽的点击里面了....
没分了 .....为了以后还能问问题,偶就小气一把了.望大家见谅~~

解决方案 »

  1.   

    不要把监听加到按钮中,这样每次点击按钮都会添加一个相同的监听。
    在你构造界面时就添加监听,监听内部只要判断一下现在是否该执行就可以了,比如:boolean b = false;
    // 给JPanel添加监听,用来获取鼠标按下和松开的XY坐标
    pane.addMouseListener(new MouseListener(){
        public void mousePressed(MouseEvent e){
            if(b){
                // 获取按钮按下时的XY坐标
            }
        }
        // 其它需实现的方法
    });
    // 点击按钮3就等于打开了鼠标监听的开关
    button3.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            b = true; // 当点击按钮3的时候,将b的布尔值设置为true,从现在开始JPanel鼠标监听才会发挥真正的作用。注意:如果点击button1或button2,在其监听中一定要加上b = false
        }
    });
      

  2.   

    把addActionListener加到第一个按钮和第二个按钮的点击里面试试