当前位置:  技术问答>java相关

/** 急呀,鼠标事件的一个小问题 */

    来源: 互联网  发布时间:2017-03-30

    本文导语:  有一个方法,我会在多处用到,如下: private void setLabelAttr(JLabel label) {    ...    label.addMouseListener(new java.awt.event.MouseAdapter() {       public void mouseClicked(MouseEvent e) {          labelSQL_MouseClicked(e);     ...

有一个方法,我会在多处用到,如下:
private void setLabelAttr(JLabel label) {
   ...
   label.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
         labelSQL_MouseClicked(e);
      }
   });
   ...
}
比方说有一个label(JLabel),当第一次生成的时候调用该方法,完成一些属性的设置。有些时候,必须对该label再调用一次该方法,这样的话MouseListener就被加了多次了,但我只需要加一次。
我应该怎么判断是否加过MouseListener?
ps,因为该方法被n各地方调用,很多地方是需要加MouseListener的,但也有些是不需要加的,这样放在一个方法里维护起来方便很多。

|
好像没说明白

|
// 1.保证只添加一次
if (label.getMouseListener.legth == 0) {
   label.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(MouseEvent e) {
            labelSQL_MouseClicked(e);
         }
      });
}
// 2.实现类MouseListener并构造它为 xxx,
private class MyMouseListener implements MouseMotionListener, MouseListener {
        public void mouseDragged(MouseEvent e) {
        }
        public void mouseMoved(MouseEvent e) {
        }
        public void mouseClicked(MouseEvent e) {
        }
        public void mouseEntered(MouseEvent e) {
        }
        public void mouseExited(MouseEvent e) {
        }
        public void mousePressed(MouseEvent e) {
        }
        public void mouseReleased(MouseEvent e) {
        }
    }
MyMouseListener mml = new MyMouseListener();
//添加之前先尝试删除
label.removeMouseListener( mml );
label.addMouseListener( mll );

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3