我一直在努力研究Windows游标。我已经成功地将注册表值与鼠标属性对话框(通过控制面板访问的那个)中给出的各种光标类型的名称相匹配。
例如,注册管理机构称之为“AppStarting'光标,鼠标属性对话框调用'在后台工作'光标,等等。
我遇到麻烦的地方是使用Java来设置这些游标,因为对于其中许多游标来说,它们似乎并不是常数。在Cursor.java中定义了各种游标:
public static final int DEFAULT_CURSOR = 0;
public static final int CROSSHAIR_CURSOR = 1;
public static final int TEXT_CURSOR = 2;
public static final int WAIT_CURSOR = 3;
public static final int SW_RESIZE_CURSOR = 4;
public static final int SE_RESIZE_CURSOR = 5;
public static final int NW_RESIZE_CURSOR = 6;
public static final int NE_RESIZE_CURSOR = 7;
public static final int N_RESIZE_CURSOR = 8;
public static final int S_RESIZE_CURSOR = 9;
public static final int W_RESIZE_CURSOR = 10;
public static final int E_RESIZE_CURSOR = 11;
public static final int HAND_CURSOR = 12;
public static final int MOVE_CURSOR = 13;
但是,经过一些测试后,有几个注册表值,它们都没有对应。例如,注册表'应用程序开始'帮助'否',' NWPen'人物' ,' Pin'和' UpArrow'条目没有相应的定义(并且它们不仅仅是13之后的整数;当我使用14作为值时,我遇到了违规行为。)
更令人惊讶的是,注册表' Hand'值实际上并不对应于HAND_CURSOR值。为HAND_CURSOR定义设置新光标并不会更改存储在注册表中的“手”和“手”。键。
那么如何使用Java设置AppStarting游标值?
的信息: Windows 10 64位 jdk1.8.0_151
答案 0 :(得分:0)
我找到了答案here,上面写着:
Java Runtime Environment要求自定义游标采用PNG或GIF格式。仅仅因为您在Windows系统上使用Java并不意味着您可以在Swing / AWT中将该格式用于GUI。
但是,我能够在文档中找到this,因此也许您将能够通过它的名称拉出您要查找的特定光标。从该文件:
返回与指定名称匹配的特定于系统的自定义游标对象。例如,游标名称为:“Invalid.16x16”
编辑:第二部分不是用于从系统中拉出,而是用于JRE附带的游标。请参阅此question。
编辑2:我发现this package有 AppStarting游标,可能符合您的需求......如果您包含该软件包。因为它是一个Cursor对象,所以它应该服务于你的目的。
编辑3:可以在eclipse.org上找到有关draw2d的信息here。