使用frame.add()获取错误不确定原因

时间:2012-07-12 23:32:56

标签: java swing

所以我从java制作一个简单的框,这是到目前为止的代码:

import java.awt.Canvas;     import javax.swing.JFrame;

public class Display {

    public static final int WIDTH = 800;
    public static final int LENGTH = 600;

    public static void main(String[] args) {
        Display game = new Display();
        JFrame frame = new JFrame();
        frame.setResizable(false);
        frame.setVisible(true);
        frame.setSize(WIDTH, LENGTH);
        frame.add(game);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

我在这里收到错误“frame.add(game);”它说“容器类型中的方法add(Component)不适用于参数(显示)”

我不知道我做错了什么,即时通讯使用javaSE-1.6

2 个答案:

答案 0 :(得分:3)

您尝试将Display的实例(不是Swing组件)添加到frame,因此会出错。查看您的导入内容,您可能需要在JPanel类(如果有的话)中添加Displayframe

或者,如果您想直接添加,Display类需要继承JComponent之类的内容。你不应该不必要地混合使用AWT和Swing组件。

答案 1 :(得分:2)

您的显示需要扩展Component,因为add方法需要作为参数。将它制作成JPanel可能是个好主意。

你提到你只想要一个基本窗口。这样就可以了:

import javax.swing.*;

public class Display extends JFrame {

    public static void main(String[] args){
        new Display();
    }

    public Display() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 200);
        setVisible(true);
    }
}