当前位置: 首页 > 面试题库 >

如何在javaFX中创建自定义光标?

强烨
2023-03-14
问题内容

我正在尝试在javaFX中创建自定义光标。这是我的代码:

Image image = new Image("mycursor.png");

Pane pane= new Pane();
pane.setCursor(new ImageCursor(image,
                                image.getWidth() / 2,
                                image.getHeight() /2));

Windows 8.1的游标创建无效吗?


问题答案:

检出ImageCursor.getBestSize()方法和ImageCursor.getMaximumColors()并查看它们返回的内容,然后尝试匹配最佳大小和最大颜色的自定义光标图像。对于Windows
8.1,这很可能是32x32的光标。

这是来自ImageCursor.getBestSize()javadoc 的引文:

获取最接近指定首选大小的受支持的光标大小。如果平台不支持自定义游标,则返回值(0,0)。

注意:如果使用的图像尺寸与支持的尺寸不匹配(由此方法返回),则实现将调整图像的尺寸为支持的尺寸。这可能会导致质量下降。

注意:这些值在操作系统,图形卡和屏幕分辨率之间可能有所不同,但是在撰写本文时,示例Windows
Vista计算机返回的所有请求大小均为32x32,而示例Mac和Linux计算机返回的请求大小达到最大值。
64x64。应用程序应提供一个32x32游标,该游标将在所有平台上均能正常工作,并且可能希望为支持该平台的那些平台提供64x64游标。

另外,请确保您创建的窗格的大小不为零,并且已将窗格添加到场景中,以便实际上有一个窗格区域可以滑过鼠标并查看光标的变化。



 类似资料:
  • 基本上,我想知道我是否可以创建一个树并在JavaFX上自定义它...我试着去做,但到目前为止还不能用这个代码做任何事情... 我在质疑自己,这是否是正确的“技术”,可以解决我想做的事情... 我从https://docs.oracle.com/javafx/2/ui_controls/tree-view.htm#babjgggf看到了这个教程,但我对这个教程真的很困惑...我不太了解细胞工厂的机制

  • 我在JavaFX中创建了一个自定义进度条。现在我想在progressBar中添加光晕效果。 为此,我创建了一个具有高斯模糊效果的椭圆,并将椭圆的中心线添加到时间轴中,以便在进度栏中设置辉光效果的动画。 这是创建椭圆的代码 这是制作动画的方法 虽然我已经将width属性与custom bar width属性绑定在一起,这样椭圆中心不会超过进度条的当前进度,并且应该反向。但当动画开始时,它不会发生,它

  • 问题内容: 我正在尝试在Log4j2中编写自己的RewritePolicy。该文档指出: RewritePolicy是一个接口,允许实现在将LogEvent传递给Appender之前检查并可能对其进行修改。RewritePolicy声明一个必须执行的名为rewrite的方法。该方法通过LogEvent传递,并且可以返回相同事件或创建一个新事件。 这是我的 java类 : 这是我的 yaml配置 文

  • 问题内容: 我正在http://www.cafeaulait.org/javafaq.html上阅读#6.10项,然后我开始怀疑大型企业如何创建自己的JVM实现。一个人会尝试(或可行)实验性的东西吗? 问题答案: 从技术上讲,创建该新JVM所需的所有信息都是该语言和目标平台的公共规范。即使字节码解释在很大程度上相同,JVM还是需要根据其是要在台式机还是手机上运行而有所不同。 一些开始寻找信息的地方

  • 问题内容: 如何在Java中创建自定义异常? 问题答案: 要定义受检查的异常,请创建的子类(或子类的层次结构)。例如: 可能引发或传播此异常的方法必须声明它: …,并且调用此方法的代码必须处理或传播此异常(或同时处理): 你会在上面的示例中注意到该错误IOException已被捕获并重新抛出为。这是用于封装异常的常用技术(通常在实现API时)。 有时在某些情况下,你不想强制每个方法在其throws

  • 问题内容: 出于某种原因,在以下代码段中似​​乎无法使用构造函数委托: 运行此给出。关于为什么的任何想法,或者是否有更好的方法来创建新的子类?我不知道的本地构造函数存在问题吗? 问题答案: 更新您的代码以将原型分配给Error.prototype和instanceof以及您的assert工作。 但是,我只是抛出您自己的对象并只检查name属性。 根据评论进行编辑 在查看了注释并试图记住为什么要分配