From 72a7f5d08c48434b9ee4860ddecfa0244096446d Mon Sep 17 00:00:00 2001
From: steyer <steyer10@gmail.com>
Date: Mon, 9 Dec 2019 17:39:55 +0100
Subject: [PATCH] JMenu

---
 src/game/ExitListener.java | 18 ++++++++++++++++++
 src/game/GameRunner.java   |  2 +-
 src/game/GameWindow.java   | 39 +++++++++++++++++++++++++++++++++-----
 3 files changed, 53 insertions(+), 6 deletions(-)
 create mode 100644 src/game/ExitListener.java

diff --git a/src/game/ExitListener.java b/src/game/ExitListener.java
new file mode 100644
index 0000000..c48bffe
--- /dev/null
+++ b/src/game/ExitListener.java
@@ -0,0 +1,18 @@
+package game;
+
+import javax.swing.JFrame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+public class ExitListener implements ActionListener {
+
+    JFrame frame;
+
+    public ExitListener(JFrame frame) {
+        this.frame = frame;
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        frame.dispose();
+    }
+}
diff --git a/src/game/GameRunner.java b/src/game/GameRunner.java
index df00663..c94fa0b 100644
--- a/src/game/GameRunner.java
+++ b/src/game/GameRunner.java
@@ -34,7 +34,7 @@ public class GameRunner extends Thread {
                     if (model != null)
                         model.fireTableDataChanged();
                     try {
-                        sleep(500);
+                        sleep(350);
                     } catch (InterruptedException e) {
                         e.printStackTrace();
                     }
diff --git a/src/game/GameWindow.java b/src/game/GameWindow.java
index d184d4d..023288d 100644
--- a/src/game/GameWindow.java
+++ b/src/game/GameWindow.java
@@ -29,24 +29,48 @@ public class GameWindow extends JFrame {
         JButton stopButton = new JButton("Stop");
         JButton saveButton = new JButton("Save");
 
-        GameWindowButtonsListener listener = new GameWindowButtonsListener(model);
+        GameWindowButtonsListener buttonListener = new GameWindowButtonsListener(model);
 
         startButton.setActionCommand("start");
         stopButton.setActionCommand("stop");
-        saveButton.setActionCommand("save");
 
-        startButton.addActionListener(listener);
-        stopButton.addActionListener(listener);
+        startButton.addActionListener(buttonListener);
+        stopButton.addActionListener(buttonListener);
         saveButton.addActionListener(new SaveButtonListener(this));
 
         bottomPanel.add(startButton);
         bottomPanel.add(stopButton);
-        bottomPanel.add(saveButton); //TODO save
+        bottomPanel.add(saveButton);
 
         add(bottomPanel, BorderLayout.PAGE_END);
 
+        JMenuItem startItem = new JMenuItem("Indítás");
+        startItem.setActionCommand("start");
+        JMenuItem stopItem = new JMenuItem("Megállítás");
+        stopItem.setActionCommand("stop");
+
+        startItem.addActionListener(buttonListener);
+        stopItem.addActionListener(buttonListener);
+
+        JMenuItem saveItem = new JMenuItem("Mentés");
+        saveItem.addActionListener(new SaveButtonListener(this));
+        JMenuItem speedItem = new JMenuItem("Sebesség"); //TODO befejezni
+        JMenuItem exitItem = new JMenuItem("Bezárás");
+        exitItem.addActionListener(new ExitListener(this));
+        JMenu menu = new JMenu("Menü");
+        menu.add(startItem);
+        menu.add(stopItem);
+        menu.addSeparator();
+        menu.add(speedItem);
+        menu.addSeparator();
+        menu.add(exitItem);
+        JMenuBar menuBar = new JMenuBar();
+        menuBar.add(menu);
+        setJMenuBar(menuBar);
+
         setVisible(true);
         pack();
+        setResizable(false);
         setLocationRelativeTo(null);
     }
 
@@ -61,4 +85,9 @@ public class GameWindow extends JFrame {
             model.saveToFile(fileChooser.getSelectedFile());
         }
     }
+
+    public void dispose(){
+        model.stop();
+        super.dispose();
+    }
 }
-- 
GitLab