我是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)不适用于参数”。它应该是一个快速解决方案,所以我希望你能帮忙!
答案 0 :(得分:3)
您正在尝试将Display对象添加到JFrame中,但这个Display对象是什么?它不会扩展任何Swing组件,例如JPanel,所以你真的无法将它添加到JFrame中,因为这样做没有意义,没有任何意义。
考虑一下:
作为一项挑剔的建议,将来你会避免在你的问题中发表类似的陈述,而且我已经尝试过所有的东西。"因为他们无法以任何方式帮助我们理解你的问题,并且属于"向下投票诱饵"。
答案 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
}
我遵循了相同的教程并遇到了同样的问题,但是用这个解决了