2

所以我用java做了一个简单的盒子,这是到目前为止的代码:

导入 java.awt.Canvas;导入 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);” 它说“容器类型中的方法添加(组件)不适用于参数(显示)”

我如何不确定我做错了什么,我正在使用 javaSE-1.6

4

2 回答 2

3

您正在尝试将Display不是 Swing 组件的 实例添加到您的frame中,因此出现错误。查看您的导入,您可能打算JPanel在您的Display类中添加一个(如果有的话)到frame.

或者,如果您想直接添加它,您的Display类需要从类似的东西继承。JComponent您不应该不必要地混合 AWT 和 Swing 组件。

于 2012-07-12T23:55:23.923 回答
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);
    }
}
于 2012-07-12T23:54:52.403 回答