我正在为Java中的绘图应用程序创建自定义鼠标光标。该应用程序需要能够在Windows上运行,并且由于与游标大小(32 * 32像素)相关的窗口限制,不可能使用内置游标功能。在Java中定制鼠标光标绘图(swing)
我试图使用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甚至paint方法本身,但似乎并没有工作。该面板的其中一个子项也有一个drawComponent方法被覆盖,我怀疑这也有影响。
我可能在这里完全错了,但是最近我和另外一位程序员讨论了将AWT和Swing结合使用时指出Z顺序的问题。我不知道这个程序背后的代码,但也许这可能与此有关? – DreadHeadedDeveloper 2014-10-26 18:28:22
我还没有看过。我一定会看到,如果这可能会导致我的问题。谢谢! – Hayeb 2014-10-26 22:39:28