我在Java Swing应用程序中显示自定义游标时遇到麻烦。用于在Java Swing中设置游标的图像参数
我设置光标由该代码:
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage("sword.png");
Point hotSpot = new Point(0,0);
Cursor cursor = toolkit.createCustomCursor(image, hotSpot, "Sword");
panel.setCursor(cursor);
该图像(尺寸:32x32px)被显示正确地安静(仅橡胶颜色从灰色变为黄色):
但此图像(尺寸:128x128)显示不正确 - 小于128x128(可能是64x64)且不包含某些颜色:
这发生在我在Linux Ubuntu上运行应用程序。
当我在Windows上运行应用程序(在Win 8上测试)时,铅笔图像显示时没有任何问题,并且剑形图像稍微有些扭曲的颜色。它们都有相同的尺寸(32x32)。
我的问题是 - 设置游标的图像应该具有哪些参数(大小,类型,质量,颜色数量)以及是否依赖于Java Swing或特定的操作系统?如果我应该以另一种方式设置游标,因为我的代码不正确。
谢谢你的回答。我测试了'getBestCursorSize(128,128)' - 这是剑形图像的大小,它返回了我最接近的支持尺寸64 x 64.所以我将GIMP中该图像的大小更改为32x32和64x64并测试了它们,但问题显示该图像的颜色仍然存在(但看起来比Toolkit实施调整大小更好)。当我以gif或png格式导出GIMP图像时,它看起来有点不同。你认为,这可能是该图像的类型或其颜色数量的问题?我是图形问题的初学者。 – 2014-11-06 17:33:09
某些操作系统(看着你的Windows)也可能会“截断”图像。 – MadProgrammer 2014-11-07 00:32:06
@ Petr.M在某些操作系统(如windows)下,游标可能只支持256种颜色,图像可能会被getter抖动以支持这个... – MadProgrammer 2014-11-07 00:32:39