java中的自定义光标

时间:2014-07-18 06:57:03

标签: java swing

最近我正在构建一个java swing应用程序,并希望添加一个自定义游标。我使用了以下代码,

public void customCursor() {
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Image image = toolkit.getImage("pencil.gif");
    Point hotspot = new Point(0,0);
    Cursor cursor = toolkit.createCustomCursor(image, hotspot, "pencil");
    setCursor(cursor);
}

并在构造函数中调用customCursor()方法。当我运行应用程序时,我的光标是不可见的。我尝试给出绝对路径并使用网址。仍然是同样的问题。另外我知道(正如这里提到的http://en.allexperts.com/q/Java-1046/cursor-1.htm),Windows OS的最佳游标大小是32x32。因此,对于上面的代码集,我添加了以下行,

toolkit.getBestCursorSize(32, 32);

仍然没有进展。我也尝试使用32x32像素图像,仍然运气不好。任何人都可以提出解决方案。 (如果是版本问题,我使用的是jdk 1.7和jre7)

1 个答案:

答案 0 :(得分:3)

可能的原因是图像的位置。

从您的代码示例中,图像“似乎”是一个嵌入式资源。无法像文件系统上的普通文件那样访问这些资源。

而不是

 Image image = toolkit.getImage("pencil.gif");

尝试使用...

 Image image = toolkit.getImage(getClass().getResource("pencil.gif"));

假设图像位于与类文件相同的位置或

 Image image = toolkit.getImage(getClass().getResource("/pencil.gif"));

如果图像位于其他位置(此示例演示位于默认包中的图像)。

Cursors