如何在lwjgl / slick2D中使用系统鼠标光标(如Cursor.TEXT_CURSOR)

时间:2016-06-14 11:57:33

标签: java cursor lwjgl slick2d

我目前正在用slick2D编写一个java程序,想要更改鼠标光标,但我不想使用下载的图像。有没有办法将鼠标光标更改为其中一个系统光标?

2 个答案:

答案 0 :(得分:1)

您可以尝试获取人机界面的实例并通过以下方式更改其光标:

Display.setCursor(Cursor.WAIT_CURSOR);

您还可以将LWJGL显示附加到JFrame,然后更改光标。

答案 1 :(得分:0)

由于系统鼠标光标通常存储在C:\ Windows \ Cursors中,因此您应该能够访问这些文件夹并使用其中的文件。 (如果你有Windows,你需要为你的操作系统聊天)

如果你现在看看Slick2D文档,你会发现你的问题已经有了一个功能。

http://slick.ninjacave.com/javadoc/org/newdawn/slick/AppGameContainer.html

 void setMouseCursor(org.lwjgl.input.Cursor cursor, int hotSpotX, int hotSpotY) 

 void setMouseCursor(ImageData data, int hotSpotX, int hotSpotY) 

 void setMouseCursor(Image image, int hotSpotX, int hotSpotY) 

 void setMouseCursor(java.lang.String ref, int hotSpotX, int hotSpotY) 

因此,您应该能够使用appcontainer中的这些方法之一并设置Cursor。

我不确定您是否可以直接从位于Windows文件夹的.cur文件创建新图像,但是您需要检查它。这意味着:

app.SetMouseCursor(new Image("C\Windows\Cursors\aero_link.cur"))

可能无效。

第一个需要org.lwjgl.input.Cursor Cursor的人应该明确地工作。请参阅此处以了解构造org.lwjgl.input.Cursor Cusor对象(http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Cursor.html)需要哪些参数

最糟糕的情况是,您需要在加载之前将.cur文件转换为jpg或png文件,或者Windows可能将.cur文件存储为可用的图像文件。

如果我误解了您的问题,您可以按照以下步骤操作:

AppGameContainer apgcc = new AppGameContainer()
apgcc.setCursor(new Cursor(Cursor.MOVE_CURSOR)); //e.g. or AppGameContainer in case you are not programming an Applet.

我不会将这些视为系统游标。