java swing组件无法解析

时间:2015-02-18 11:09:27

标签: java swing

我从教程中获取了以下代码:

import javax.swing.*;
import java.util.Date;

public class SwingGUI {

    public static void main( String[] args )
      {
        JFrame f = new JFrame( "test" );
        f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        f.setSize( 1500, 900 );
        JLabel l = new JLabel( String.format( "%tT", new Date() ) );
        f.add(l);
        f.setVisible( true );
      }
}

f.add(l);突出显示,并显示两个错误:

  • Container类型中的方法add(Component)不适用于参数(JLabel)

  • 无法解析javax.swing.JComponent类型。它是从所需的.class文件间接引用的

相对较新的java,我真的不明白Eclipse试图告诉我什么。我能做些什么才能让它发挥作用?

编辑:代码在没有行f.add(l);的情况下运行,因此问题不在于找不到JFrame或JLabel。在稍微摆弄一下后,我摆脱了第一个错误,但第二个仍然存在。组件无法解析,因为它是间接引用的。这是什么意思?

9 个答案:

答案 0 :(得分:5)

显然问题不在于代码,因为它适用于其他所有人。所以我决定删除并重新安装java和eclipse,etvoilà!现在它有效。谢谢大家的反馈。

答案 1 :(得分:3)

只是猜测,但它符合您描述的问题:

当您自己的包中包含名为JLabel的类时,可能会出现此问题。然后,本地类将从JLabel - 包中隐藏导入的javax.swing - 类,它可能与原始类没有相同的类层次结构。

总结一下:以现有的JDK类命名自己的类通常是一个坏主意。

答案 2 :(得分:3)

我遇到了同样的问题,发现我的项目使用的是Java 8库。 我安装了Java 7库,通过引用已安装的C:\Program Files\Java文件夹中的库将相同的内容添加到项目属性中,错误消失了。

看起来,新的Java 8版本可能采用不同的方式来解决swing组件。

答案 3 :(得分:3)

在eclipse中将系统库下的执行环境更新为JavaSE-1.7或JavaSE-1.8应该可以解决该问题。 要更新以下步骤,请按照以下步骤操作:

> Right-click on the project
> Select properties
> Java build path
> Library > Add Library > Add JRE SYSTEM Library
> Execution Environment
> Select JavaSE-1.7 or JavaSE-1.8
> Finish

答案 4 :(得分:2)

我也遇到了这个问题。 不幸的是解决它我需要安装我的日食。但我认为问题是 Eclipse中JRE和JAVA版本之间不兼容

当我的项目(和我的eclipse indigo)无法升级到JAVA8时,我使用了JRE支持的JAVA8。更新到另一个可以支持java 8的eclipse可以解决问题。

答案 5 :(得分:1)

  1. Eclipse中必须安装(和选择)JDK:

    窗口>偏好> Java>已安装的JRE

  2. 必须将项目配置为使用该JDK:

    项目>属性> Java构建路径>库

  3. 列表中应该有一个类似“JRE系统库[JDK7]”的条目。如果没有,请按:

    添加图书馆...> JRE系统库

  4. 项目应该是作为“Java项目”创建的:

    项目>属性>助洗剂

    应包含“Java Builder”

  5. SoCodeIt IDE Dr

答案 6 :(得分:1)

我是新来的。我有这个问题,花了我2​​天的研究。我通过添加一个包含Eclipse所有必需组件的外部JAR文件来解决它。右键单击项目>> Buildpath>>配置构建路径>>添加外部JARS并浏览计算机上的JAR文件。可以在此处下载JAR文件http://www.java2s.com/Code/Jar/j/Downloadjsdgstubsjre15jar.htm 希望这可以帮助那些人。

答案 7 :(得分:1)

问题不在代码中

这是因为项目的JRE配置错误。 这可能是由于项目的JRE和工作区的Jre之间存在差异。

可以通过更新Eclipse或Jre ...

来解决

但在我身边,我建议你这样做..

  

转到窗口 - >首选项 - > Java - >已安装的JRE --->执行环境 - >选择项目的JRE和勾选完美匹配已安装JRE

如果 您没有匹配的JRE下载,请使用添加按钮将其添加到已安装的JRE中。

最后,重新启动Eclipse IDE。 这对我来说很好......

如果不起作用, UPDATE Eclipse ..

答案 8 :(得分:0)

我在eclipse IDE中也面临同样的问题,但是在将jar文件更改为jre7(右键单击项目>> Buildpath>>配置构建路径>> AddLibrary>> Jre系统库)之后,错误已经已经解决了,我不知道有什么可以解释它。