我从教程中获取了以下代码:
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 );
}
}
Run Code Online (Sandbox Code Playgroud)
将f.add(l);被突出显示,并显示两个错误:
参数类型Container中的方法add(Component)不适用于参数(JLabel)
无法解析javax.swing.JComponent类型.它是从所需的.class文件间接引用的
作为一个相对较新的java,我真的不明白Eclipse试图告诉我什么.我能做些什么才能让它发挥作用?
编辑:代码在没有行的情况下运行f.add(l);,因此问题不在于找不到JFrame或JLabel.在稍微摆弄一下后,我摆脱了第一个错误,但第二个仍然存在.组件无法解析,因为它是间接引用的.那是什么意思?
在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
Run Code Online (Sandbox Code Playgroud)