我的 Eclipse 中似乎不存在 Swing。我现在已经两次卸载并重新安装了 Java,以及来自不同镜像的 Eclipse,但这个问题仍然存在。我知道 swing 应该是标准库的一部分,所以我不知道为什么程序找不到它。这个程序:
package com.example.helloworld;
import javax.swing.JFrame;
public class CreateABasicGUIProgram {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello Swing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
产生这些错误消息:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
JFrame cannot be resolved to a type
JFrame cannot be resolved to a type
JFrame cannot be resolved to a variable
at HelloWorld/com.example.helloworld.CreateABasicGUIProgram.main(CreateABasicGUIProgram.java:9)
ChatGPT 表示,原因是 Java 程序找不到 JFrame 类,该类是 Swing 库的一部分,这种情况通常发生在 Java 编译器找不到必要的库时。
我已按照 ChatGPT 中有关如何处理此问题的所有提示进行操作,但问题仍然存在。我已经为此工作了好几天了。
非常感谢您的任何想法。
只是为了让它更明显一点(并防止依赖 YouTube):
问题是模块化应用程序。由于某种原因,
java.desktop
模块尚未在 module-info.java 文件中声明,因此访问被禁止。
解决方案是添加一行
requires java.desktop;
到项目根目录中的
module-info.java
文件。