frame.add(游戏);不工作

时间:2015-03-14 14:57:10

标签: java swing game-engine

我是java的新手,决定制作一款简单的游戏。我找到了这个教程https://www.youtube.com/watch?v=iH1xpfOBN6M&list=ELmvNdIhZY1t4,这是我的代码:

package com.MyGame.Display;

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

public class Display {

    private static final long serialVersionUID = 1L;
    public static final int WIDTH = 800;
    public static final int HEIGHT = 600;
    public static final String TITLE = "MyGame Version Pre-Alpha 0.1";

    public static void main(String args[]){

        Display game = new Display();
        JFrame frame = new JFrame();
        frame.add(game);
        frame.pack();
        frame.setTitle(TITLE);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(WIDTH,HEIGHT);
        frame.setLocationRelativeTo(null);
        frame.setResizable(false);
        frame.setVisible(true);
    }
}

frame.add(游戏)似乎有错误;代码,但我没有做任何工作。我已经尝试了一切。错误是“类型Container中的方法add(Component)不适用于参数”。它应该是一个快速解决方案,所以我希望你能帮忙!

3 个答案:

答案 0 :(得分:3)

您正在尝试将Display对象添加到JFrame中,但这个Display对象是什么?它不会扩展任何Swing组件,例如JPanel,所以你真的无法将它添加到JFrame中,因为这样做没有意义,没有任何意义。

考虑一下:

  • 让显示扩展JPanel
  • 阅读/学习Swing教程。您可以在此处找到Swing教程和其他Swing资源的链接:Swing Info
  • 还要学习基础Java教程,并学习如何经常使用和使用Java API。

作为一项挑剔的建议,将来你会避免在你的问题中发表类似的陈述,而且我已经尝试过所有的东西。"因为他们无法以任何方式帮助我们理解你的问题,并且属于"向下投票诱饵"。

答案 1 :(得分:0)

您需要显示以扩展(按照指南)画布。你不能随机添加Java中的JFrames。

最好做这样的事情

 public class Game extends JFrame {

   public Game() {

       initUI();
   }  

   private void initUI() {


       pack();
       repaint();

       setResizable(false);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setLocationRelativeTo(null);
   }

   public static void main(String[] args) {
       EventQueue.invokeLater(new Runnable() {
           @Override
           public void run() {
               Game g = new Game();
               g.setVisible(true);
               running = true;
               Update update = new Update();
           }
       });

   }

答案 2 :(得分:-1)

我现在可能会迟到但是:

public class Display extends Canvas { <--here

}

我遵循了相同的教程并遇到了同样的问题,但是用这个解决了