Component approach. Using a JComponent to draw your car on will show the shape of the car with a non–opaque (transparent) background. Using the built–in JComponent tooltip will show the tooltip after the mouse enters the JComponent boundry. To have the tooltip show only after crossing the boundry of the graphic shape drawn on the JComponent you will have to write some creative code. You could put this code in a superclass such as Vehicle. Use a MouseMotionAdapter/Listener for each JComponent and show the tooltip after crossing the boundry of the shape (mouseMoved). Graphic approach. Draw your vehicles on and add the MouseMotionAdapter/Listener to the JPanel that draws the shapes. Your mouse(Moved) code will monitor all drawn shapes for penetration. Be careful with mouseMoved code; it's easy to do too much in the method. For some implementation ideas: tooltip-like popup with mouseover. There are a lot of ways to put these kinds of things together so let your imagination be active.