📜  Java AWT |带有示例的光标类

📅  最后修改于: 2022-05-13 01:54:40.819000             🧑  作者: Mango

Java AWT |带有示例的光标类

Cursor 类是Java AWT 包的一部分,用于创建自定义游标或继承系统或预定义的游标。
Cursor 类主要用于封装鼠标光标的位图表示。

游标类的构造函数是:

  1. Cursor(int t) : 创建一个具有指定类的游标
  2. Cursor(String name) :创建具有指定名称的自定义光标。

常用方法

methodexplanation
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.程序将一些预定义和系统光标应用于组件(标签)

// 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());
        }
    }
}

输出 :


2.程序将所有预定义的光标添加到一个选项中
// 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()));
    }
}

输出 :


3.程序创建自定义光标并将其添加到标签
// 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();
    }
}

输出 :


注意:程序可能无法在在线 IDE 中运行,请使用离线 IDE。