Java 使用自定义光标

Java 使用自定义光标,java,swing,cursor,Java,Swing,Cursor,我在这里搜索了好几条线索,但没有一条有用 我有几个JFrame,每个JFrame都应该有自己的光标,表示用户正在使用的程序版本。 这些文件位于/AndroidToolkit/resources中。这些文件都是.cur文件,所以它们实际上是正确的游标,而不仅仅是图像 我试过几种方法,但都成功了。我尝试过使用ImageIO、Toolkit,最后一次尝试是: Cursor cCur = Toolkit.getDefaultToolkit().createCustomCursor(getClass().

我在这里搜索了好几条线索,但没有一条有用

我有几个
JFrame
,每个
JFrame
都应该有自己的光标,表示用户正在使用的程序版本。 这些文件位于/AndroidToolkit/resources中。这些文件都是.cur文件,所以它们实际上是正确的游标,而不仅仅是图像

我试过几种方法,但都成功了。我尝试过使用ImageIO、Toolkit,最后一次尝试是:

Cursor cCur = Toolkit.getDefaultToolkit().createCustomCursor(getClass().getResource("../resources/ImpressionCursor.cur").getFile()., null, null);
我如何能以一种简单的方式做到这一点,这对其他人来说很容易理解,而不必总是用10k行来评论它

提前感谢,,
Beats

这就是你需要的,试试这段代码,在Ubuntu 12.04 LTS上100%适用于我,它也应该适用于你:

public static void main(String[] args) {

        Toolkit toolKit = Toolkit.getDefaultToolkit();
        Image pencil = toolKit.getImage("pencil.gif");
        Cursor cursor = toolKit.createCustomCursor(pencil, new Point(0, 0), "Pencil");

        JFrame frame = new JFrame("Cursor Test");
        frame.setSize(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);

        frame.setCursor(cursor);
        frame.setVisible(true);

    }
这是gif文件的链接,
我希望这会有所帮助,Salam

getResource(../resources/ImpressionCursor.cur”).getFile()
是个坏主意(getFile部分),
getResource
返回
URL
,因此它应该可以与
ImageIcon
一起使用
createCustomCursor
不接受
.cur
文件,这是一个依赖于操作系统的概念,这就是为什么您还需要提供光标的热点和名称。@AnderThompson一次只加载一个帧。“一次只加载一个帧。”您似乎正在使用GUI组件制作某种“向导”API,该API更适合单个框架和
CardLayout
@andrewhompson No,No。根据设置中是否有特定键,即对于pro版本,将加载pro UI。如果找不到密钥或无效密钥,则加载标准UI;如果找到开发人员密钥,则加载开发人员UI。谢谢。我会试试看:)