/** * Moobreeder is a simple cow breeding game to illustrate the principles of * selective breeding to KS3 pupils. * * (c) Daniel Vedder 2018, Amano Christian School * Licensed under the terms of the MIT license. * https://git.synoikos.de/daniel/moobreeder */ /* * This is the main class with the GUI. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MooBreeder extends JFrame { private JMenuBar menubar; private JMenu fileMenu, helpMenu; private JMenuItem reset, quit, help, about; private Box herdBox, parentBox, offspringBox; private Box motherBox, fatherBox, child1Box, child2Box; private JButton add, breed, keep, remove; public static void main(String[] args) { Herd.getInstance(); MooBreeder mb = new MooBreeder(); } public MooBreeder() { this.setTitle("MooBreeder"); this.setSize(800, 400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.createMenu(); this.createLayout(); //TODO this.setVisible(true); } private void createMenu() { menubar = new JMenuBar(); fileMenu = new JMenu("File"); helpMenu = new JMenu("Help"); reset = new JMenuItem("Reset"); quit = new JMenuItem("Exit"); help = new JMenuItem("Help"); about = new JMenuItem("About"); //TODO reset.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int restart = JOptionPane.showConfirmDialog(null, "Reset the game?", "Reset?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (restart == JOptionPane.OK_OPTION) resetGame(); } }); quit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int confirm = JOptionPane.showConfirmDialog(null, "Quit MooBreeder?", "Quit?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); if(confirm == JOptionPane.YES_OPTION) System.exit(0); } }); quit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.ALT_MASK)); about.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "MooBreeder - an educational breeding game"+ "\n\n(c) 2018 Daniel Vedder"+ ", Amano Christian School"+ "\nhttps://git.synoikos.de/daniel/moobreeder", "About", JOptionPane.INFORMATION_MESSAGE); } }); fileMenu.add(reset); fileMenu.add(quit); helpMenu.add(help); helpMenu.add(about); menubar.add(fileMenu); menubar.add(helpMenu); this.setJMenuBar(menubar); } private void createLayout() { //TODO herdBox = new Box(BoxLayout.Y_AXIS); Box breedBox = new Box(BoxLayout.Y_AXIS); parentBox = new Box(BoxLayout.Y_AXIS); offspringBox = new Box(BoxLayout.Y_AXIS); this.add(herdBox, BorderLayout.WEST); this.add(breedBox, BorderLayout.EAST); breedBox.add(parentBox); breedBox.add(offspringBox); updateGUI(); } private void updateGUI() { updateHerdBox(); updateParentBox(); updateOffspringBox(); } private void updateHerdBox() { //TODO JLabel label = new JLabel("Your current herd:"); herdBox.add(label); } private void updateParentBox() { //TODO JLabel label = new JLabel("Parents"); parentBox.add(label); } private void updateOffspringBox() { //TODO JLabel label = new JLabel("Offspring"); offspringBox.add(label); } private void resetGame() { Herd.getInstance().resetHerd(); updateGUI(); } }