如何设置光标在摆动中的自定义大小?

2022-09-04 20:16:14

我使用以下代码为JPanel设置自定义光标,但是当我运行代码时,它会放大我为光标设置的图像。有没有办法设置用户定义的游标大小?

Toolkit toolkit = Toolkit.getDefaultToolkit();
BufferedImage erasor=new BufferedImage(10,10, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d=(Graphics2D) erasor.createGraphics();
g2d.setPaint(Color.red);
g2d.drawRect(e.getX(),e.getY() ,10, 10);
toolkit.getBestCursorSize(10, 10);
Cursor mcursor=toolkit.createCustomCursor(erasor, new Point(10,10), "Eraser");
setCursor(mcursor);

答案 1

Windows似乎只允许大小为32x32像素的光标,因此,如果您想要另一个大小,则必须解决它。

若要获得较小的尺寸,请使用 32x32 图像,其中不需要的像素是透明的。如果使用,则可以使像素透明。createCustomCursor()BufferedImage.TYPE_INT_ARGB

要使游标更大,我相信这将起作用:

  • 创建完全透明的自定义游标。

  • 使用 a 获取光标的位置。mouseMotionListener

  • 在实际(透明)光标的位置绘制光标图像。


答案 2

一个简单的解决方案是使用“标准”大小和透明背景的图像。


推荐