Java AWT | Cursor class with examples

Cursor class is a part of Java AWT package and it is used to create custom cursors or inherit system or predefined cursors.
Cursor class is mainly used to encapsulate the bitmap representation of the mouse cursor.

Constructor of cursor class are :

  1. Cursor(int t) : Creates a cursor with specified class
  2. Cursor(String name) : Creates a custom cursor with specified name.

Commonly used methods

method explanantion
getDefaultCursor() return the system default cursor.
getName() returns the name of this cursor.
getPredefinedCursor(int t) returns a cursor object with the specified predefined type.
getSystemCustomCursor(String n) returns a system-specific custom cursor object matching the specified name.
getType() returns the type for this cursor
toString() returns a string representation of this cursor.
createCustomCursor(Image i, Point p, String name) create a custom cursor with a image and name specified .

1. Program to apply some predefined and system cursors to components (label)

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java  Program to apply some predefined and system cursors to components (label)
import java.awt.*;
import javax.swing.*;
class cursor extends JFrame {
    // frame
    static JFrame f;
  
    // label
    static Label l, l1, l2;
  
    // default constructor
    cursor()
    {
    }
  
    // main class
    public static void main(String args[])
    {
        try {
            // create a frame
            f = new JFrame("cursor");
  
            // create e panel
            JPanel p = new JPanel();
  
            // create labels
            l = new Label("label one");
            l1 = new Label("label two");
            l2 = new Label("label three");
  
            // create cursors
            Cursor c = new Cursor(CROSSHAIR_CURSOR);
            Cursor c1 = new Cursor(HAND_CURSOR);
  
            // get System cursor
            Cursor c2 = Cursor.getSystemCustomCursor("Invalid.32x32");
  
            // set cursor
            l.setCursor(c);
            l1.setCursor(c1);
            l2.setCursor(c2);
  
            // add labels to panel
            p.add(l);
            p.add(l1);
            p.add(l2);
  
            // add panel to the frame
            f.add(p);
  
            // show the frame
            f.show();
            f.setSize(250, 300);
        }
        catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
}

chevron_right


Output :





2. Program to add all predefined cursors to a choice

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to add all predefined cursors to a choice
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class cursor extends JFrame implements ItemListener {
    // frame
    static JFrame f;
  
    // labels
    static Label l;
  
    // create a choice
    static Choice c;
  
    // default constructor
    cursor()
    {
    }
  
    // main class
    public static void main(String args[])
    {
        // create a frame
        f = new JFrame("cursor");
  
        // create e panel
        JPanel p = new JPanel();
  
        // create a choice
        c = new Choice();
  
        // add items to choice
        for (int i = 0; i < 14; i++)
            c.add(Cursor.getPredefinedCursor(i).getName());
  
        // object of class
        cursor cu = new cursor();
  
        // create a label
        l = new Label(" label one ");
  
        // add item listener to the choice
        c.addItemListener(cu);
  
        // add labels to panel
        p.add(l);
        p.add(c);
  
        // add panel to the frame
        f.add(p);
  
        // show the frame
        f.show();
        f.setSize(250, 300);
    }
  
    // if an item of choice is selected
    public void itemStateChanged(ItemEvent e)
    {
        // set the cursor
        l.setCursor(Cursor.getPredefinedCursor(c.getSelectedIndex()));
    }
}

chevron_right


Output :





3. program to create a custom cursor and add it to labels

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to create a custom cursor and add it to labels
import java.awt.*;
import javax.swing.*;
class cursor extends JFrame {
    // frame
    static JFrame f;
  
    // label
    static Label l, l1, l2;
  
    // default constructor
    cursor()
    {
        // create a frame
        f = new JFrame("cursor");
  
        // create e panel
        JPanel p = new JPanel();
  
        // extract image
        // the files gfg.jpg and gfg.png contains image of cursor
        Image i = Toolkit.getDefaultToolkit().getImage("f:\\gfg.jpg");
        Image i1 = Toolkit.getDefaultToolkit().getImage("f:\\gfg.png");
  
        // point p
        Point p11 = new Point(0, 0);
  
        // create labels
        l = new Label("label one");
        l1 = new Label("label two");
  
        // create cursors
        Cursor c = Toolkit.getDefaultToolkit().createCustomCursor(i, p11, "cursor1");
        Cursor c1 = Toolkit.getDefaultToolkit().createCustomCursor(i1, p11, "cursor2");
  
        // set cursor
        l.setCursor(c);
        l1.setCursor(c1);
  
        // add labels to panel
        p.add(l);
        p.add(l1);
  
        // add panel to the frame
        f.add(p);
  
        // show the frame
        f.show();
        f.setSize(250, 300);
    }
  
    // main class
    public static void main(String args[])
    {
        cursor c = new cursor();
    }
}

chevron_right


Output :


Note : The programs might not run in an online IDE please use an offline IDE.



My Personal Notes arrow_drop_up

Second year Department of Information Technology Jadavpur University

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.