【发布时间】:2015-04-19 08:45:28
【问题描述】:
我从教程中获取了以下代码:
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 试图告诉我什么。我该怎么做才能让它发挥作用?
edit:代码运行时没有f.add(l);这一行,所以问题不在于找不到JFrame或JLabel。在摆弄了一下之后,我摆脱了第一个错误,但第二个仍然存在。该组件无法解析,因为它是间接引用的。这是什么意思?
【问题讨论】:
-
项目-->清理... ?
-
清理没有帮助。我建立了一个新项目,选择了jre1.8.0_31,创建了新的包和类,但我仍然收到错误消息
-
尝试删除java swing的导入,然后在eclipse中使用control-shift-O让它找到JFrame类并导入。错误消息似乎说它找不到 JFrame;也许您从示例而不是您的课程中复制了上面的内容,并且拼写错误。如果 eclipse 没有找到任何东西,这意味着这个 eclipse 项目无法使用 swing 库。
-
我试过ctrl-shift-o,但没有帮助。问题不在于 JFrame 或 JLabel 本身。代码在没有
f.add(l);的情况下运行