繁体   English   中英

用于在Java Swing中设置光标的图像参数

[英]Image parameters for setting cursor in 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或特定的OS? 如果我应该以其他方式设置光标,因为我的代码不正确。

问题是大多数操作系统都希望使用32x32的尺寸,如果更大,它将尝试将其调整为正确的尺寸,因此可能会出现显示不正确的情况。 因此,您可以假设正确的尺寸应为32x32。

您可以使用:

getBestCursorSize(int preferredWidth, int preferredHeight)

它返回所需大小的最接近的受支持光标尺寸。 看一下API => http://docs.oracle.com/javase/7/docs/api/java/awt/Toolkit.html#getBestCursorSize%28int,%20int%2

作为一个好的和安全的解决方案,您应该使用Photoshop,GIMP或其他好的程序将图像调整为支持的尺寸。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM