2

我有上述问题 - 我想知道是否有任何专家可以提供帮助。

  1. 组件是我从 java.awt API 导入的项目

  2. 我不知道 Eclipse 从哪里派生出“容器”!!

  3. 在我搜索的 Qs 中,它在“参数”之后显示 (Square) 的地方,它在其他人的 Qs 中有一个数据类型 - 在我的 Qs 中,它是一个与下面的相同包中的类,其中错误出现在第 19 行“choras.add(trial);”中,所以我假设该类被检测为一种类型。

代码:

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);
        }
    }
}
4

4 回答 4

4

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

javax.swing.JFrameextends java.awt.Frameextends java.awt.Windowextendsjava.awt.Container因此JFrame是 的一种Container

Container#add期望从 扩展的对象java.awt.Component

据推测,Square不会从任何继承自(直接或间接)的类扩展java.awt.Component,但由于您没有为我们提供该类,我们只能猜测......

于 2012-12-11T19:25:45.800 回答
0

在你的Square课堂上,确保你正在扩展/实现一些东西:

public class Square extends JPanel
于 2014-09-12T02:05:56.260 回答
0

答案是不能将 Shape 添加到 JFrame。(您可以在此处阅读有关容器的信息)。

如果您希望在 Swing 中使用自定义形状,这篇文章可能对您有用。

于 2012-12-11T19:14:42.893 回答
0

错误非常明显Jframe.add(Component)需要一个java.awt.Component作为参数,并且您将Square传递给它,因此出现错误。

于 2012-12-11T19:13:43.873 回答