【问题标题】:Cannot solve import javax.swing.* error in Eclipse无法解决 Eclipse 中的 import javax.swing.* 错误
【发布时间】:2016-11-08 23:24:00
【问题描述】:

当我在同一个包中创建 Java 应用程序构建器和主类时,我将 javax swing 导入为import java.swing.*,然后我在主类中出现错误。

主类

import javax.swing.*;

public class SMS {

    public static void main(String[] args){
        MainFrame mf = new MainFrame(); //ok
        mf.setVisible(true);  //error
        mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //error
    }

}

我的最后两行错误为The method setVisible(boolean) is undefined for the type 和另一行The method setDefaultCloseOperation(int) is undefined for the type

我已经将 JRE 路径设置为,

  • 在 Eclipse 中安装(并选择)JDK:Window -> Preferences -> Java -> Installed JREs

  • 选定的 JDK:Project -> Properties -> Java Build Path -> Libraries

  • 包括“Java Builder”:Project -> Properties -> Builders

但我遇到了上述错误。我可以帮我修复这个错误以运行我的代码吗...?

【问题讨论】:

  • MainFrame 未在 javax.swing 包中声明。我很惊讶您在MainFrame mf = new MainFrame() 行没有收到错误,除非您导入的不仅仅是javax.swing.*
  • 右键单击您的项目 -> 属性 -> 构建路径 -> 确保您的“库”选项卡有 JDK(系统库)
  • 我认为您将 Scala Swing 与 Java Swing 混淆了。我想你想要JFrame
  • JFrame mf = new JFrame();
  • MainFrame 是你自己的类吗,它扩展了 JFrame 吗?

标签: java eclipse swing jframe


【解决方案1】:

只是改变

MainFrame mf = new MainFrame();

JFrame mf = new JFrame();

说明

除非 mf 是扩展 JFrame 的类,否则您将无法调用它独有的方法。因此,在这种情况下,您只需将对象更改为 JFrame 而不是 MainFrame

如果MainFrame 是您自己的内部类,您希望将其视为JFrame,请将其添加到类声明中:

extends JFrame

【讨论】:

    【解决方案2】:

    您是否在寻找JFrame 而不是MainFrame

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 2013-08-20
      相关资源
      最近更新 更多