java - 为什么 setCursor() 不起作用?

标签 java user-interface compiler-errors cursor awt

我正在测试 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 of JPanel - 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/

相关文章:

java - MySql 数据库中的数据不正确

java - 如何避免使用 log4j2 重复记录唯一 ID

java - Swing 的 Unicode 支持的限制

html - 需要文本为窗口的 100% 高度和宽度,不多也不少

.net - 错误1编译时无法复制文件

java - 当 URL 相同时,如何区分 New relic 中的 GET 和 PUT 请求事务?

java - 如何从jtable中连续勾选的jcheckbox获取值

.net - 将插入符号放置在MaskedTextbox中

c++ - 推导函数调用时的歧义问题

c - 尝试初始化成员时出现 Typedef 结构错误