我有上述问题 - 我想知道是否有专家可以提供帮助。
组件是我从java.awt API
我不知道Eclipse从哪里派生了“容器”!!
在我搜索的Qs中,它在“参数”之后所说的地方(Square),它在其他人的Qs中有一个数据类型 - 在我的搜索中,它是一个与一个人在同一个包中的类在下面,其中错误出现在第19行“choras.add(trial);”中,因此我假设该类被检测为类型。
CODE:
package square;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JComponent;
public class SquareTest
{
public static void main(String[] args)
{
Square trial = new Square(12);
{
JFrame choras = new JFrame();
choras.setSize(300, 430);
choras.setTitle("Hi iko square yangu");
choras.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
choras.add(trial);
choras.setVisible(true);
}
}
}
答案 0 :(得分:3)
类型Container中的方法add(Component)不适用于参数(Square)
javax.swing.JFrame
扩展java.awt.Frame
扩展java.awt.Window
扩展java.awt.Container
,因此,JFrame
是Container
的类型。
Container#add
期望一个对象从java.awt.Component
延伸。
据推测,Square
不会从任何继承自(直接或间接)java.awt.Component
的类扩展,但如果您没有向我们提供该类,我们只能猜测...
答案 1 :(得分:0)
该错误非常明显Jframe.add(Component)期望java.awt.Component作为参数,并且您将 Square 传递给它,因此错误。
答案 2 :(得分:0)
答案 3 :(得分:0)
在Square
课程中,确保您正在扩展/实施某些内容:
public class Square extends JPanel