使用用户设置自定义光标Java

5
我知道在Windows和OSX上,用户可以定义自己的系统级光标。但是,我还没有找到任何使用Java类中已定义光标之外的光标的方法。
例如,假设我有一个JFrame和一个自定义绘制的组件如下图所示:
(图片)
这个光标是使用`setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR))`设置的。但是我想使用用户设置的link光标,以便应用程序与操作系统更加集成。有没有办法不使用Java定义的link光标?我需要显式请求文件吗?还是我需要使用JNA或其他东西?
---编辑---
我认为我需要让问题更清楚一些。
假设用户将他们的系统级链接光标(当悬停在链接(例如在Web浏览器中)上时出现的光标)设置为香蕉的图片。那么在悬停在自定义绘制的组件上时,如何切换到香蕉光标?

我已在Windows上进行了测试。但是,我确切知道getPredefinedCursor方法不会返回用户设置的光标;我只是不知道为什么。在JRE中有一个cursor.properties文件,定义了由getSystemCustomCursor返回的“系统”光标,但该方法仅适用于该文件中列出的光标。 - jfdoming
1
也许你可以在鼠标悬停在某个位置(你想要香蕉出现的位置)时触发事件,然后从加载的图像中设置光标(如果你知道如何做)。 - CoderMusgrove
我本来会这样做的,但我不想强制用户提交一张图片。如果我可以使用在此对话框中设置的图片,那就更好了。 - jfdoming
这可能是一个本地的事情。有人会认为,由于用户定义的光标依赖于平台,因此必须以平台相关的方式获取它。并非所有平台都允许用户定义的光标。我很确定OSX不允许。 - Radiodef
好的,谢谢您的推荐。 - jfdoming
显示剩余2条评论
1个回答

0

你尝试过使用 jLabel1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); 这个方法吗?它应该可以得到你想要的系统光标。


1
谢谢你的帮助;然而,我已经尝试过类似的东西了,setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR))。但是我想要使用用户设置的光标,就像在Windows上一样。 - jfdoming

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接