“无法访问类型javax.swing.JFrame”是什么意思,我该如何解决?

时间:2019-07-24 19:44:55

标签: java

我和this tutorial一起关注,并且在视频的开头出现了问题(大约7:45)。我正在尝试创建一个将启动窗口的基本Java程序,但是,我似乎无法导入JFrame。

我已经在Stack Overflow上寻找其他解决方案,但没有找到适合我的解决方案。

这是我编写的代码:

import javax.swing.JFrame;

public class App {

    public static void main(String[] args) {

        JFrame frame = new JFrame("Hello World");

        frame.setVisible(true);

    }

}

我正在运行macOS Mojave 10.14.5版的Macbook Pro(13英寸,2012年中)上使用Eclipse 4.12.0版

预期结果:运行该程序时会打开一个窗口,而当我关闭该窗口时,程序将结束。

实际结果:未创建任何窗口,并且出现此错误消息:

Error occurred during initialization of boot layer
java.lang.module.FindException: Error reading module: /Users/username/eclipse-workspace/Swing1/bin
Caused by: java.lang.module.InvalidModuleDescriptorException: App.class found in top-level directory (unnamed package not allowed in module)

2 个答案:

答案 0 :(得分:0)

如果您使用eclipse创建了Java应用程序,那么您的错误就是软件包。

使用eclipse,我创建了一个Java应用程序,这就是结果

enter image description here

此代码修正了您的疑问

package demo;

import java.awt.Dimension;

import javax.swing.JFrame;

public class App {

    public static void main(String[] args) {

        JFrame frame = new JFrame("Hello World");

        frame.setLocationRelativeTo(null);
        frame.setSize(new Dimension(400, 400));
        frame.setVisible(true);

    }

}

了解package

的参考

答案 1 :(得分:-1)

我有同样的问题。我在Eclipse中做了类似的代码。我在导入javax.swing.JFrame的一侧收到错误The type javax.swing.JFrame is not accessible; 解决方案是: 删除import javax.swing.JFrame;行 然后,在您的代码主体内部,用鼠标悬停在 JFrame 关键字上,Eclipse将提供一些自动完成建议。 选择import 'JFrame' (javax.swing) 这将自动带来所需的导入。这是一种捷径。 为了避免这些类型的错误:切勿手动键入,请通过自动填充获取导入和方法,例如 setVisible 。例如,键入 frame.setV ,然后Eclipse将再次提示完成操作...从此处选择。我不知道为什么,但这就是我的情况。