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


Tip of the Day
Language: Java
Expertise: Intermediate
Mar 19, 1999

Determine Absolute Cursor Coordinates

When a component event such as a mouse click occurs, Java provides the cursor coordinates relative to the top left corner of the component in which the event took place. However, it can be useful to determine the cursor's absolute screen position instead. For example, you could use this information to create "tool tips" or "bubble help" windows, since that functionality is not included in the Java 1.1 (or earlier) core classes.

To obtain the cursor's absolute position on the screen, add the component's absolute position on the screen to the cursor's relative position within the component. You can obtain the component's absolute position on the screen by calling its getLocationOnScreen() method, and you can get the cursor's offset position from the MouseEvent instance. For example:

 
import java.awt.*;
import java.awt.event.*;

public class MouseMonitor extends Panel implements MouseMotionListener {

	public void mouseDragged(MouseEvent event) {};
	public void mouseMoved(MouseEvent event) {
		//  Gets the cursor's position relative to the component
		Point relative = event.getPoint();
		//  Get component associated with the event
		Component comp = event.getComponent();
		//  Get component's absolute screen location
		Point location = comp.getLocationOnScreen();
		//  Calculate cursor's absolute position on screen
		Point absolute = new Point(relative.x + location.x,
relative.y + location.y);
		//  Print cursor's absolute position
		System.out.println("Absolute position: " + absolute);
	}  //  public void mouseMoved()

}  //  public class DoubleClickTest extends Panel implements MouseListener
()
Brett Spell
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date