当前位置: 技术问答>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的,但也有些是不需要加的,这样放在一个方法里维护起来方便很多。
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 );
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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。