【问题标题】:Importing swing package in module-info在 module-info 中导入 swing 包
【发布时间】:2019-09-03 13:22:37
【问题描述】:

我正在尝试在一个简单的 java 项目中使用 swing API,需要在 module-info.java 中导入 javax.swing 包

我在 Eclipse IDE 上使用 openJDK-11

module ml.garba.testeur {
    requires javax.swing; 
}

这是 JFrame 实例

package ml.garba.testeur.vue;

import javax.swing.JFrame;

public class Fenetre_Testeur extends JFrame {

}

swing包的导入好像不行。

我需要帮助

【问题讨论】:

  • 声明 requires javax.swing; 也不应该在理想情况下起作用。

标签: java swing java-11 java-module


【解决方案1】:

模块信息声明必须声明所需的模块,而不是包。

因此,您的声明必须是

requires java.desktop;

有关现有模块和包含(导出)的包,请参阅 the API documentation

【讨论】:

  • 当我将 javax.swing 更改为 java.desktop 时,我已经解决了这个问题
  • @Naman 我不确定您建议的替代方案是否更易于阅读。但我仍然愿意接受建议。
  • @NikoO 首先你是怎么知道合格的类名的?
  • @NikoO 我刚刚尝试过,Eclipse 之后建议的第一件事是将requires java.desktop; 添加到module-info。无论您使用什么来获取限定名称,获取模块名称都不应有所不同。 Stackoverflow 上的大多数示例代码不包含 import 语句,因此您必须使用 IDE 的自动完成功能,它也应该提供模块名称,或者查找文档,它也提供模块名称。跨度>
  • @NikoO 您已链接到 Java 7 文档,但在 Java 9 中引入了模块。使用与您的 Java 版本匹配的文档或使用最新但注意“自”注释。检查JOptionPane;该模块在顶部命名。
【解决方案2】:

所以,我认为您的问题可能出在您的导入声明中。

因为你只导入了

javax.swing.JFrame;

您可能无法运行您的代码。但是,如果您尝试

import javax.swing.*;

希望它可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多