我正在制作一款2d游戏,作为youtube教程系列的一部分。我才刚刚开始,并已将其全部复制到T.目前只有一个类,我想知道如何设置eclipse以正确运行它。
我正在运行Windows 7 x64
package com.zephyrwolf.main;
import java.awt.Dimension;
import javax.swing.JFrame;
public class Game extends JFrame implements Runnable{
/**
*
*/
private static final long serialVersionUID = 0L;
public static final int WIDTH = 360, HEIGHT = 240, SCALE = 2;
public static boolean running = false;
public Thread gameThread;
public synchronized void start() {
if (running) return;
running = true;
gameThread = new Thread(this);
gameThread.start();
}
public synchronized void stop() {
if (!running) return;
running = false;
try {
gameThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void run() {
}
public static void main(String[] args) {
Game game = new Game();
game.setPreferredSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
game.setMaximumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
game.setMinimumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
JFrame frame = new JFrame("Tile RPG");
frame.setSize(WIDTH * SCALE, HEIGHT * SCALE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.add(game);
frame.setVisible(true);
}
}
这是我试图让程序运行。
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.checkNotAWindow(Unknown Source)
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at javax.swing.JFrame.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at com.zephyrwolf.main.Game.main(Game.java:49)
如果您需要任何新的信息,请发短信给我。
你的游戏类扩展JFrame
,然后你试图单独创建一个JFrame
,并将你的游戏实例添加到它。因此错误是:
adding a window to a container
(你不能把一个窗口放到另一个窗口里面)。
尝试直接在game
上做所有setSize
, setVisible
的东西。