如何在JavaFX 2.1中更改光标图像大小?

İsa*_*Göl 2 javafx-2

我改变了光标的图像.我试图改变光标图像的大小,但我无法.我怎样才能改变它的大小?提前致谢.

jew*_*sea 5

您可以使用其中一个预定义的光标类型更改光标或提供图像以拥有自己的光标,但系统将根据底层平台的光标大小支持自动调整提供的图像大小.有关用于选择确定实际游标大小的算法的详细信息,请参阅ImageCursor.getBestSize()ImageCursor.chooseBestCursor()的文档.

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.stage.*;

public class ResizableCursor extends Application {
  public static void main(String[] args) { launch(args); }
  @Override public void start(Stage stage) {
    StackPane layout = new StackPane();
    layout.setCursor(Cursor.cursor("http://icons.iconarchive.com/icons/artua/star-wars/256/Death-Star-icon.png"));
    stage.setScene(new Scene(layout, 200, 200));
    stage.show();
  }
}
Run Code Online (Sandbox Code Playgroud)

如果你想拥有一个任意大小的节点,它随着鼠标移动并且看起来像光标(但不是光标),你可以将光标设置为Cursor.NONE,然后转换节点以跟随鼠标位置(如在这个例子中完成,当你点击一个圆圈来移动它时).使用此策略,似乎用户具有任意大小的自定义光标,即使它们没有.

ImageCursor.getBestSize()的相关文档的副本:

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

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

注意:这些值可能因操作系统,图形卡和屏幕分辨率而异,但在撰写本文时,示例Windows Vista计算机为所有请求的大小返回32x32,而示例Mac和Linux计算机返回所请求的大小最大值64x64.应用程序应该提供32x32游标,它可以在所有平台上很好地工作,并且可以选择为那些支持它的平台提供64x64游标.