最近我正在构建一个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)
答案 0 :(得分:3)
可能的原因是图像的位置。
从您的代码示例中,图像“似乎”是一个嵌入式资源。无法像文件系统上的普通文件那样访问这些资源。
而不是
Image image = toolkit.getImage("pencil.gif");
尝试使用...
Image image = toolkit.getImage(getClass().getResource("pencil.gif"));
假设图像位于与类文件相同的位置或
Image image = toolkit.getImage(getClass().getResource("/pencil.gif"));
如果图像位于其他位置(此示例演示位于默认包中的图像)。