我正在寻找为 Java 中的绘图应用程序创建自定义鼠标光标。该应用程序需要能够在 Windows 上运行,并且由于 Windows 中与光标大小(32 * 32 像素)相关的限制,无法使用内置光标功能。
我尝试使用 MouseMotionListener 在当前鼠标位置绘制图像,当我在空面板上绘制它时,这很有效。图像正确地“跟随”鼠标,所以这不是问题。
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(cursorimage, x, y, null);
}
但是,当我将子项添加到此面板时,鼠标光标显示在子项后面。例如,当我添加几个按钮时,鼠标会在按钮后面显示其图像。如何将光标图像移动到前景?
我尝试了一些方法,例如更改paintComponent 中的顺序:
@Override
public void paintComponent(Graphics g) {
g.drawImage(cursorimage, x, y, null);
super.paintComponent(g);
}
我也尝试过覆盖其他绘画方法,如paintChildren、paintComponents 甚至绘画方法本身,但这似乎也不起作用。面板的其中一个子面板还覆盖了一个 drawComponent 方法,我怀疑这也有影响。