diff options
author | Nao Pross <naopross@thearcway.org> | 2018-11-19 10:58:47 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2018-11-19 10:58:47 +0100 |
commit | a659fc5cfe73938731cc0b431f1c42a2fa0ed02d (patch) | |
tree | e1e5a6f81eb9818de548b6219970a33666fbf19d /src/GameWindow.java | |
parent | Update Scene class (and some derivates) to be abstract (diff) | |
download | Subconscious-java-a659fc5cfe73938731cc0b431f1c42a2fa0ed02d.tar.gz Subconscious-java-a659fc5cfe73938731cc0b431f1c42a2fa0ed02d.zip |
Update GameWindow and remove parent frame dependency on Scene
Diffstat (limited to '')
-rw-r--r-- | src/GameWindow.java | 87 |
1 files changed, 44 insertions, 43 deletions
diff --git a/src/GameWindow.java b/src/GameWindow.java index 540d75b..d1afad4 100644 --- a/src/GameWindow.java +++ b/src/GameWindow.java @@ -10,29 +10,28 @@ import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -public class GameWindow implements ActionListener { +public class GameWindow extends JFrame implements ActionListener { public static final Dimension WINDOW_SIZE = new Dimension(600, 400); - private JFrame frame; private JPanel menu; // TODO: remove map editor, start directly on Battle mode public GameWindow() { - this.frame = new JFrame("Subconscious"); + super("Subconscious"); - this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - this.frame.setSize(WINDOW_SIZE); - this.frame.setPreferredSize(WINDOW_SIZE); - this.frame.setLocationRelativeTo(null); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setSize(WINDOW_SIZE); + this.setPreferredSize(WINDOW_SIZE); + this.setLocationRelativeTo(null); JPanel menu = new JPanel(); menu.setLayout(new GridLayout(3, 1)); JButton editor = new JButton("Editor"); - editor.setActionCommand("editor"); + editor.setActionCommand("btn-editor"); JButton battle = new JButton("Battle"); - battle.setActionCommand("battle"); + battle.setActionCommand("btn-battle"); JButton exit = new JButton("Exit"); - exit.setActionCommand("exit"); + exit.setActionCommand("btn-exit"); editor.addActionListener(this); battle.addActionListener(this); @@ -44,46 +43,48 @@ public class GameWindow implements ActionListener { this.menu = menu; - this.frame.add(this.menu); - this.frame.pack(); - - this.frame.setVisible(true); + this.add(this.menu); + this.pack(); + this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { - if ("editor".equals(e.getActionCommand())) { - MapEditor mapEditor = new MapEditor(frame); - - this.frame.getContentPane().removeAll(); - this.frame.getContentPane().invalidate(); - this.frame.getContentPane().add(mapEditor); - this.frame.getContentPane().revalidate(); - - Thread mapEditorThread = new Thread(mapEditor); - mapEditorThread.start(); - - } else if ("battle".equals(e.getActionCommand())) { - BattleScene battleScene = new BattleScene(frame); - - this.frame.getContentPane().removeAll(); - this.frame.getContentPane().invalidate(); - this.frame.getContentPane().add(battleScene); - this.frame.getContentPane().revalidate(); - - Thread battleThread = new Thread(battleScene); - battleThread.start(); - - } else if ("exit".equals(e.getActionCommand())) { - this.frame.setVisible(false); - this.frame.dispose(); + if (e.getActionCommand().startsWith("btn")) { + if (e.getActionCommand().equals("btn-exit")) { + this.setVisible(false); + this.dispose(); + return; + } + + Scene scene = null; + + if (e.getActionCommand().equals("btn-editor")) { + scene = new MapEditorScene(); + } else if (e.getActionCommand().equals("btn-battle")) { + scene = new BattleScene(); + } + + if (scene == null) { + return; + } + + this.getContentPane().removeAll(); + this.getContentPane().invalidate(); + this.getContentPane().add(scene); + this.getContentPane().revalidate(); + + scene.updateCanvasSize(); + + Thread sceneThread = new Thread(scene); + sceneThread.start(); } } public void backToMenu() { - this.frame.getContentPane().removeAll(); - this.frame.getContentPane().invalidate(); - this.frame.getContentPane().add(this.menu); - this.frame.getContentPane().revalidate(); + this.getContentPane().removeAll(); + this.getContentPane().invalidate(); + this.getContentPane().add(this.menu); + this.getContentPane().revalidate(); } } |