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