Be User-Friendly With Double-Clicks

Be User-Friendly With Double-Clicks

The idea behind the Java’s handling of double-clicks on the mouse is that if the mouse is clicked fast enough for two times in the same spot, a “java.awt.event.MouseEvent” event object will be fired to interested parties who have implemented “java.awt.event.MouseListener”, and the getClickCount() method of this event object, if invoked, will return 2.

Unfortunately, the AWT implementation relies on some fast enough successive clicks in the same spot. So, if a user of your Java GUI cannot be fast enough for some reason, or has trembling hands, or the double-clicks vary in location by a few pixels, the two clicks will probably not be detected.

To avoid this, you can have your code define its own definition for a double-click, and also give the user the capability to make modification to your definition. The idea is to keep track of time of mouse events, as well as their locations.

First, have the code of your GUI override “public booleanmouseUp(java.awt.Event evt, int x, int y)” of the “java.awt.Component”class. Then, based on the time stamp of two mouse-ups (miliseconds) obtained from “java.awt.Event.when” long data member, and mouse positions (X and y pixels) between mouse clicks, your code can determine if a double-click has occured or not.


Share the Post: