Java 在MouseRelease方法中检测双击
我需要使用mouseReleased方法而不是mouseClicked,所以我需要找到一种拦截双击的方法。代码如下:Java 在MouseRelease方法中检测双击,java,mouseevent,Java,Mouseevent,我需要使用mouseReleased方法而不是mouseClicked,所以我需要找到一种拦截双击的方法。代码如下: public void mouseReleased(MouseEvent e) { if (e.getClickCount() == 2) System.out.println ("Double CLICK mouseReleased"); else { row= clientTable.rowAtPoint(e.g
public void mouseReleased(MouseEvent e)
{
if (e.getClickCount() == 2)
System.out.println ("Double CLICK mouseReleased");
else
{
row= clientTable.rowAtPoint(e.getPoint());
col= clientTable.columnAtPoint(e.getPoint());
clientTable.sel(row, col);
}
}
问题是,当我双击时,我还有一个单击事件。有人知道怎么解决这个问题吗?谢谢1。使用类的方法
getClickCount()
方法MouseEvent
2.这将帮助您获取单击的类型。。单人、双人、三人等
有关更多详细信息,请参见此处:
1.使用类的方法
MouseEvent
2.这将帮助您获取单击的类型。。单人、双人、三人等
有关更多详细信息,请参见此处:
双击时,没有一个简单的方法可以不单击 我曾经写过这篇文章,但它有一个缺点,你的点击会变得有点迟钝 用法示例:
JLabel label = new JLabel("test");
label.addMouseListener(new SingleClickInhibitorMouseListener(some other mouselistener));
public class SingleClickInhibitorMouseListener implements MouseListener
{
public static final Integer CLICK_TRESHOLD = (Integer) Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
private Collection<MouseListener> mouseListeners = new ArrayList<MouseListener>();
public SingleClickInhibitorMouseListener( MouseListener listener )
{
mouseListeners.add(listener);
}
public void addMouseListener( MouseListener listener )
{
mouseListeners.add(listener);
}
public void removeMouseListener( MouseListener listener )
{
mouseListeners.remove(listener);
}
public void removeAllListeners()
{
mouseListeners.clear();
}
public void mouseSingleClick( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
public void mouseDoubleClick( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
public boolean hasDoubleClick = false;
public void mouseClicked( final MouseEvent me )
{
if ( me.getClickCount() == 1 )
{
new Thread(new Runnable()
{
public void run()
{
try
{
Thread.sleep(CLICK_TRESHOLD);
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
if ( hasDoubleClick )
hasDoubleClick = false;
else
mouseSingleClick(me);
}
});
}
catch (InterruptedException e)
{
mouseSingleClick(me);
hasDoubleClick = false;
}
}
}).start();
}
else
{
if ( me.getClickCount() == 2 )
hasDoubleClick = true;
mouseDoubleClick(me);
}
}
public void mousePressed( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mousePressed(e);
}
}
public void mouseReleased( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseReleased(e);
}
}
public void mouseEntered( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseEntered(e);
}
}
public void mouseExited( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseExited(e);
}
}
}
JLabel标签=新的JLabel(“测试”);
label.addMouseStener(新的SingleClickInhibitorMouseStener(其他一些MouseStener));
公共类SingleClickInhibitorMouseListener实现MouseListener
{
public static final Integer CLICK_TRESHOLD=(Integer)Toolkit.getDefaultToolkit().getDesktopProperty(“awt.multiClickInterval”);
private Collection mouseListeners=new ArrayList();
公共单键单击抑制器MouseStener(MouseStener侦听器)
{
添加(侦听器);
}
public void addMouseStener(MouseStener侦听器)
{
添加(侦听器);
}
public void removeMouseListener(MouseListener侦听器)
{
鼠标侦听器。删除(侦听器);
}
public void removeAllListeners()
{
mouseListeners.clear();
}
public void mouseSingleClick(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
public void mouseDoubleClick(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
公共布尔值hasDoubleClick=false;
公共无效鼠标单击(最终鼠标事件我)
{
如果(me.getClickCount()==1)
{
新线程(newrunnable())
{
公开募捐
{
尝试
{
线程睡眠(单击“线程睡眠”);
SwingUtilities.invokeLater(新的Runnable()
{
公开募捐
{
如果(双击)
hasDoubleClick=false;
其他的
鼠标单击(我);
}
});
}
捕捉(中断异常e)
{
鼠标单击(我);
hasDoubleClick=false;
}
}
}).start();
}
其他的
{
如果(me.getClickCount()==2)
hasDoubleClick=true;
鼠标双击(我);
}
}
公共无效鼠标按下(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)
{
老鼠压迫(e);
}
}
公共无效MouseEvent(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)
{
mouseListener.mouselestered(e);
}
}
公共无效鼠标事件(鼠标事件e)
{
for(MouseListener MouseListener:mouseListeners)
{
mouseListener.mouseEntered(e);
}
}
公共无效mouseExited(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)
{
mouseListener.mouseexitted(e);
}
}
}
双击时,没有一个简单的方法可以不单击
我曾经写过这篇文章,但它有一个缺点,你的点击会变得有点迟钝
用法示例:
JLabel label = new JLabel("test");
label.addMouseListener(new SingleClickInhibitorMouseListener(some other mouselistener));
public class SingleClickInhibitorMouseListener implements MouseListener
{
public static final Integer CLICK_TRESHOLD = (Integer) Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
private Collection<MouseListener> mouseListeners = new ArrayList<MouseListener>();
public SingleClickInhibitorMouseListener( MouseListener listener )
{
mouseListeners.add(listener);
}
public void addMouseListener( MouseListener listener )
{
mouseListeners.add(listener);
}
public void removeMouseListener( MouseListener listener )
{
mouseListeners.remove(listener);
}
public void removeAllListeners()
{
mouseListeners.clear();
}
public void mouseSingleClick( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
public void mouseDoubleClick( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
public boolean hasDoubleClick = false;
public void mouseClicked( final MouseEvent me )
{
if ( me.getClickCount() == 1 )
{
new Thread(new Runnable()
{
public void run()
{
try
{
Thread.sleep(CLICK_TRESHOLD);
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
if ( hasDoubleClick )
hasDoubleClick = false;
else
mouseSingleClick(me);
}
});
}
catch (InterruptedException e)
{
mouseSingleClick(me);
hasDoubleClick = false;
}
}
}).start();
}
else
{
if ( me.getClickCount() == 2 )
hasDoubleClick = true;
mouseDoubleClick(me);
}
}
public void mousePressed( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mousePressed(e);
}
}
public void mouseReleased( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseReleased(e);
}
}
public void mouseEntered( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseEntered(e);
}
}
public void mouseExited( MouseEvent e )
{
for (MouseListener mouseListener : mouseListeners)
{
mouseListener.mouseExited(e);
}
}
}
JLabel标签=新的JLabel(“测试”);
label.addMouseStener(新的SingleClickInhibitorMouseStener(其他一些MouseStener));
公共类SingleClickInhibitorMouseListener实现MouseListener
{
public static final Integer CLICK_TRESHOLD=(Integer)Toolkit.getDefaultToolkit().getDesktopProperty(“awt.multiClickInterval”);
private Collection mouseListeners=new ArrayList();
公共单键单击抑制器MouseStener(MouseStener侦听器)
{
添加(侦听器);
}
public void addMouseStener(MouseStener侦听器)
{
添加(侦听器);
}
public void removeMouseListener(MouseListener侦听器)
{
鼠标侦听器。删除(侦听器);
}
public void removeAllListeners()
{
mouseListeners.clear();
}
public void mouseSingleClick(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
public void mouseDoubleClick(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)
{
mouseListener.mouseClicked(e);
}
}
公共布尔值hasDoubleClick=false;
公共无效鼠标单击(最终鼠标事件我)
{
如果(me.getClickCount()==1)
{
新线程(newrunnable())
{
公开募捐
{
尝试
{
线程睡眠(单击“线程睡眠”);
SwingUtilities.invokeLater(新的Runnable()
{
公开募捐
{
如果(双击)
hasDoubleClick=false;
其他的
鼠标单击(我);
}
});
}
捕捉(中断异常e)
{
鼠标单击(我);
hasDoubleClick=false;
}
}
}).start();
}
其他的
{
如果(me.getClickCount()==2)
hasDoubleClick=true;
鼠标双击(我);
}
}
公共无效鼠标按下(MouseEvent e)
{
for(MouseListener MouseListener:mouseListeners)