Итак, я делаю игру и хочу переключить ее с апплета на JFrame, так как все мои другие классы используют JFrames.Тем не менее, я продолжаю получать кучу ошибок во время выполнения, которые я вообще не понимаю.
Я в основном пытался просто заменить, где написано extends Applet
на 'extends JFrame', а также создать другой классгде он создает JFrame, который содержит все об игре, например фон, движение, буквально всю игру.
Это один из классов, в котором я объявляю JFrame, который содержит остальную частьигра:
public class SpaceGame{
JFrame frame = new JFrame("Space Shooter");
AlienAttack alienAttack = new AlienAttack();
public SpaceGame(){
frame.setBounds(320, 25, 1000, 650);
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(alienAttack);
}
}
Вот класс AlienAttack, который вы видите выше:
public class AlienAttack extends JFrame implements KeyListener, Runnable
{
double xVel; double yVel; final double SPEED = 0.02;
Thread thread;
int direction;
double x, y;
final double FRICTION = 0.98;
boolean upAccel, downAccel, leftAccel, rightAccel;
ArrayList<Shot> shots;
ArrayList<Alien> aliens;
boolean shipActive;
public void init(){
x=475;
y=300;
direction = 1;
xVel = 0; yVel = 0;
shipActive = true;
upAccel = false; downAccel = false; leftAccel = false; rightAccel = false;
shots = new ArrayList<Shot>();
aliens = new ArrayList<Alien>();
this.addKeyListener(this);
thread = new Thread(this);
thread.start();
}
Это еще не все, но я думаю, что это важно.Кстати, Shot
и Alien
- это другие классы, я использую их в ArrayLists.
Вот некоторые ошибки, которые я получаю:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
(это основной)
t 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 SpaceGame.<init>(SpaceGame.java:11)
at TestingGrounds$SnakeHandler.actionPerformed(TestingGrounds.java:82)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
Это как половина из них LOL