一、本文目的
用Java的Swing图形框架来设置按钮的Cusor图标;
二、技术要点
1、每个组件有setCursor(Cursor cursor)方法来设置鼠标指针;
2、JDK官方有Toolkit工具类来创建自定义的指针对象;
三、代码如下
import javax.swing.*;
import java.awt.*;
public class CursorTest {
public static void main(String[] args) {
// 1、定义窗口对象
JFrame frame = new JFrame("鼠标图标");
// 2、定义面板对象
JPanel panel = new JPanel();
// 3、定义按钮对象,名字为"手"
JButton test_01 = new JButton("手");
// 4、设置该按钮的指针类别
test_01.setCursor(new Cursor(Cursor.HAND_CURSOR));
JButton test_02 = new JButton("文本");
test_02.setCursor(new Cursor(Cursor.TEXT_CURSOR));
JButton test_03 = new JButton("等待");
test_03.setCursor(new Cursor(Cursor.WAIT_CURSOR));
JButton test_04 = new JButton("十字箭头");
test_04.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
JButton test_05 = new JButton("移动箭头");
test_05.setCursor(new Cursor(Cursor.MOVE_CURSOR));
JButton test_06 = new JButton("调整箭头");
test_06.setCursor(new Cursor(Cursor.E_RESIZE_CURSOR));
JButton test_07 = new JButton("自定义");
test_07.setCursor(getCursor());
// 5、把每个按钮加入到JPanel面板里
panel.add(test_01);
panel.add(test_02);
panel.add(test_03);
panel.add(test_04);
panel.add(test_05);
panel.add(test_06);
panel.add(test_07);
// 6、把面板对象加入JFrame窗口里
frame.add(panel);
// 7、设置窗口的宽度为500像素,高度为400像素
frame.setSize(500, 400);
// 8、设置窗口在屏幕的坐标为(250, 450)
frame.setLocation(250, 450);
// 9、设置窗口可以看见
frame.setVisible(true);
// 10、设置窗口默认的关闭行为:退出运行
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* 获取自定义的鼠标图标
* @return
*/
public static Cursor getCursor(){
// 1、获取Toolkit工具类对象
Toolkit toolkit = Toolkit.getDefaultToolkit();
// 获取图片对象
// 类路径的图片路径:/img/my.jpg
Image image = toolkit.getImage(CursorTest.class.getResource("/img/my.jpg"));
// 相对鼠标指针的坐标
Point point = new Point(1, 1);
// 图标名字
String text = "名字";
// 2、根据图片、偏移坐标、名字创建鼠标图标对象
Cursor customCursor = toolkit.createCustomCursor(image, point, text);
// 3、返回
return customCursor;
}
}
四、运行案例
1、窗口
2、当鼠标放置在按钮上
等待的效果:
自定义指针图片:
此时出现了自定义图片在指针附近。