1.可以设置个标记位嘛.
2.在添加鼠标事件之前先把控件的鼠标事件remove.然后再加。

解决方案 »

  1.   

    1.专门为这个设一个tag我总觉得不好,这样肯定不是最好的办法
    2.remove鼠标事件,问题是我有很多个(当然有很多种JLabel,都直接或间接继承JLabel的)label,mouseListener是new java.awt.event.MouseAdapter{}这样的形式,怎么remove?
      

  2.   

    你用imprements 不就得了不过要注意不要做成抽像类。
      

  3.   

    自己定义一个label的类,实现鼠标listener的接口.
      

  4.   

    // 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 );