【问题标题】:error: "the method add(Component) in the type Container is not applicable for the arguments (Square)错误:“容器类型中的方法 add(Component) 不适用于参数 (Square)
【发布时间】:2012-12-11 19:10:04
【问题描述】:

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

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

【问题讨论】:

    标签: java swing


    【解决方案1】:

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

    javax.swing.JFrame 扩展java.awt.Frame 扩展java.awt.Window 扩展java.awt.Container,因此,JFrameContainer 的一种类型。

    Container#add 需要一个从 java.awt.Component 扩展的对象。

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

    【讨论】:

    • 我在这里包含了 Dquare 类:
    • 包方;导入 javax.swing.JComponent;公共类 Square { 私人双侧长度;私人双人区; public Square(int initialLength) { sideLength = initialLength;面积 = 边长 * 边长; } public double getArea() { 返回区域; } public void grow() { sideLength = 2 * sideLength;现在很清楚,我正在尝试执行计算文件而不是图形文件 - 非常感谢您指出这个简单的“错误”(实际上是心不在焉 - 建议:避免成为 30 岁以上的人!!)
    • public class Square { extend 不直接或间接来自java.awt.Component ... “避免年龄超过 30 岁” 到晚 - 更好建议,只是不要长大;)
    • 改用public class Square extends JPanel {
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这个问题的答案是您不能将 Shape 添加到 JFrame。 (您可以阅读有关容器的信息here)。

      如果您希望在 Swing 中使用自定义形状,This post 可能对您有用。

      【讨论】:

        【解决方案4】:

        在您的 Square 课程中,确保您正在扩展/实现某些内容:

        public class Square extends JPanel
        

        【讨论】:

          猜你喜欢
          • 2021-06-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-20
          • 1970-01-01
          • 1970-01-01
          • 2015-06-04
          • 1970-01-01
          相关资源
          最近更新 更多