【发布时间】:2015-11-08 05:13:14
【问题描述】:
我正在关注这个 YouTube 教程 (https://www.youtube.com/watch?v=DFQzFJqOSbA&index=83&list=PLFE2CE09D83EE3E28),但我得到了带有红色下划线的 add(lb) 并出现此错误:
Container类型中的add(Component)方法不适用于参数(JButton)
我很困惑,因为 JButton 根据这个 http://docs.oracle.com/javase/7/docs/api/javax/swing/JButton.html 扩展了 Container,这不意味着它是一个有效的参数吗?
我觉得我忽略了一些愚蠢的错误,不胜感激。
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Layout extends JFrame {
private JButton lb;
private JButton cb;
private JButton rb;
private FlowLayout layout;
private Container container;
public Layout() {
super("title");
layout = new FlowLayout();
container = getContentPane();
setLayout(layout);
lb = new JButton("left");
add(lb);
}
}
当我将鼠标悬停在 lb = new JButton("left") 上时,弹出窗口会这样说...
Open Declaration javax.swing.JButton.JButton(String arg0)
@ConstructorProperties(value={"text"})
注意:该元素既没有附加源代码也没有附加 Javadoc,因此找不到 Javadoc。
编辑
我的导入行也有一个错误,上面写着
The type javax.swing.JComponent cannot be resolved.
It is indirectly referenced from required .class files
这是我项目的截图
【问题讨论】:
-
1) 请显示完整的错误消息——包括有问题的类的包完整名称。 2) 在同一个包中是否还有另一个名为
JButton的类? -
您的代码在我的 IDE 上编译。也许你应该清理/重建你的项目。
-
你应该检查this question他们提供的答案指向他们的jdk问题
-
这与您的程序错误无关。您在 Eclipse 中配置的 JRE 有问题。转到 windows/preferences,然后是 java/Installed JRE,删除您正在使用的并再次添加它。
-
好的,我刚刚更新到 Mars,我的问题已解决。我不知道我是怎么用 Helios 结束的,我很久以前没有安装 Eclipse,我猜我点击了错误的。谢谢你们的帮助。