java自定义鼠标形状

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java自定义鼠标形状相关的知识,希望对你有一定的参考价值。

import javax.swing.JFrame;
import java.awt.*;

public class test extends JFrame

public test()
try
this.getContentPane().setCursor(Cursor.getSystemCustomCursor("src/arrow40.cur"));
catch(Exception e)
this.setSize(640, 500); //窗口大小为640*500
this.setVisible(true); //窗口可见
setDefaultCloseOperation(EXIT_ON_CLOSE);

public static void main(String[] args)
test m=new test();


这是我写的一个测试类,可是鼠标形状并没有变化,如何才能按照我规定的鼠标资源文件自定义鼠标形状呢?
谢谢你这么帮助我,可惜我用Eclipse运行还是出不来,这次连鼠标都没了。。。

希望这段代码对你有用

1.自定义个类扩展Cursor,重写Cursor的方法:
class MyCursor extends Cursor
public MyCursor(int n)
super(n);


static public Cursor getSystemCustomCursor(final String name)
throws AWTException, HeadlessException
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage(name);
return toolkit.createCustomCursor(
image, new Point(0, 0), "myCursor");



2.在你的程序中:

try
String ico = "D:\\myCursor.gif";//你图标的位置
this.setCursor(MyCursor.getSystemCustomCursor(ico));
catch(Exception ae)



-------------------------------------------------------------------
在你的基础上改成下面这个样子就可以了
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import java.awt.*;

public class test extends JFrame

public test()
try
this.getContentPane().setCursor(getMyCursor());
catch (Exception e)

this.setSize(640, 500); // 窗口大小为640*500
this.setVisible(true); // 窗口可见
setDefaultCloseOperation(EXIT_ON_CLOSE);


public static void main(String[] args)
test m = new test();


public Cursor getMyCursor()
Image img = new ImageIcon(test.class.getResource("arrow40.cur")).getImage();
return this.getToolkit().createCustomCursor(img,new Point(16,16),"mycursor");


参考技术A 大概要用到两个方法
一个是设置鼠标样式
setCursor(java.awtCursor.getPredefinedCursor(java.awtCursor.DEFAULT_CURSOR));

一个是建创鼠标样式
public Cursor createCursor(Image img,String name)
return this.getToolkit().createCustomCursor(img,new Point(16,16),name);

以上是关于java自定义鼠标形状的主要内容,如果未能解决你的问题,请参考以下文章

我连鼠标光标都是爱你的形状——MATLAB自定义光标及png转化为光标数组

自定义边界矩形的形状

如何获取自定义形状的 .onHover(...) 事件

在悬停时更改自定义鼠标

如何使用处理 Java 库将自定义形状数组和字符串数组合并到 JSON 对象中

鼠标的形状