我用下面代码创建自定义光标:
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage("C:/Users/Administrator/Desktop/gaea/core/ui/gaeawindow/src/si/xlab/gaea/core/ui/gaeawindow/HandCursor.gif");
// Somewhere in mouse pressed action
public void mousePressed(MouseEvent e)
{
Cursor cursor = toolkit.createCustomCursor(imageClose, new Point(12,12), "Hand");
e.getComponent().setCursor(cursor);
}
光标在Mac上的显示就像它应该的那样,但在模拟的Windows 7中却不是。它的显示增加了,而且很难看。
我应该对我的代码应用什么修复/技巧来修复这个问题?这是常见的问题吗?
2条答案
按热度按时间cclgggtu1#
问题是Windows需要32 x32的光标,如果不是的话,它会缩放你的图像。
最简单的解决方案是用透明像素将现有的16 x16光标填充到32 x32;这将在两个平台上工作。
您可以使用
以查看是否支持给定的大小。
如需详细信息,请参阅:http://forums.sun.com/thread.jspa?threadID=5424409,它也有一个到MS站点的链接。
xdyibdwo2#
可能是模拟的Windows 7找不到映像文件。您应该将映像文件移动到类路径中,紧挨着Java文件,这样您就可以使用getClass().getResource()加载此文件。
它应该在模拟的Windows 7和Mac上都能工作。