我正在测试 java 的一个新方面,尝试为我的游戏制作自定义光标,但似乎我遇到了一个问题,在我的代码中 setCursor(); 带来了出现编译器错误,因为它不被视为正确的代码段。我遵循了教程和不同的指南,它们都导致了同样的问题,并且我没有找到我的查询的答案。
Toolkit toolKit = Toolkit.getDefaultToolkit();
Image img = toolKit.getImage(getClass().getResource("/res/cursor.png"));
Point point = new Point(0, 0);
Cursor cursor = toolKit.createCustomCursor(img, point, "Cursor");
setCursor(cursor);
希望有人能够帮助我,提前致谢。 备注:
- 我现在运行的是最新的 JRE (1.8)。
- 收到的编译器错误如下:
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: The method setCursor(Cursor) is undefined for the type Main
最佳答案
由于 MadProgrammer 的最后评论,问题得到了解决:
Then, you need to call
setCursor
with the instance ofJPanel
- A runnable example would make it easier.
我遇到的问题是我使用了 JFrame 作为容器,而不是 JPanel。为了修复之前的代码,我将主容器更改为 JPanel,这反过来又允许我使用:JPanelName.setCursor();
编辑:通过进一步的测试,我还发现 JFrame 仍然可以像前面提到的那样使用。上面代码的问题是我将其调用为 JFrame.setCursor();
,这是对非静态方法的静态调用。这给我的印象是我应该只使用 setCursor();
(如上面的查询所示)。希望这对那些可能对 setCursor(); 方法有一些误解的人有所帮助。再次感谢 MadProgrammer 解决了问题。
关于java - 为什么 setCursor() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51602881/