This Java tutorial shows how to go beyond the predefined cursors in Java and create your own cursors using a GIF or PNG that are dsiplayed when the user moves the mouse over a Java component (AWT or Swing).
Creating the Cursor Image
For the custom cursor, a transparent GIF or PNG will be needed for the cursor. For this tutorial, a sample transparent GIF image of a pencil is provided below (right click to save):
Loading the Cursor Image
The image for the custom cursor needs to be loaded into an Image object.
//Get the default toolkitDefining the Cursor Hot Spot
Toolkit toolkit = Toolkit.getDefaultToolkit();
//Load an image for the cursor
Image image = toolkit.getImage("pencil.gif");
The cursor hot spot is used for the point location in mouse events. For a cursor such as a cross-hair cursor, the hot spot would be in the center of the cursor. In our example, the cursor hot spot will be at the pencil point or the point 0,0.
//Create the hotspot for the cursorCreating the Custom Cursor
Point hotSpot = new Point(0,0);
To create the custom image, we put together the cursor image and the hot spot:
//Create the custom cursor
Cursor cursor = toolkit.createCustomCursor(image, hotSpot, "Pencil");
Displaying the Custom Cursor
The final step is to notify the component to display the cursor.
//Use the custom cursor