dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Java
Expertise: All
Sep 8, 1999

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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 boolean mouseUp(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.

Behrouz Fallahi
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date