import java.util.*; import javax.swing.*; import java.awt.Color; import java.awt.event.*; import java.awt.Dimension; import java.awt.GridLayout; import java.util.*; /** * Write a description of class Gui here. * * author (Mark Schulze Spüntrup) * version (22.03.08) */ public class Gui extends JFrame implements ActionListener { private Schiffeversenken spiel; private JMenuBar menueleiste; private JMenuItem starten,zuruecksetzen,bedienung,version,ende; private JMenu dateimenue,hilfemenue; private Color farbe1,farbe2,farbe3; private ArrayList buttonliste; private JPanel panel; public Gui() { super("Schiffeversenken"); spiel = new Schiffeversenken(); panel = new JPanel(); buttonliste = new ArrayList(); farbenFestlegen(); menueZeileErzeugen(); spielfeldOberflaeche(); fensterEinstellungen(); buttonsVorbereiten(); show(); } public void farbenFestlegen() { farbe1 = new Color(255,0,0); farbe2 = new Color(160,220,240); farbe3 = new Color(184,184,184); } public void fensterEinstellungen() { setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); setSize(400,400); } // ZUR ERKLÄRUNG VORAB: Die SCHLEIFE BEGINNT MIT 100 weil ich i unten noch zum zuweisen des Action Commands Nutze... Da aber bnereits 1-7 für die Menüeinträge drauf gehen public void buttonsVorbereiten() { JButton knopf = null; for(int i = 100; i < 200; i++) { knopf = new JButton(); knopf.addActionListener(this); knopf.setActionCommand(""+i); buttonliste.add(knopf); } for(JButton button : buttonliste) { panel.add(button); } } public void spielfeldOberflaeche() { panel.setOpaque(true); panel.setBackground(Color.yellow); panel.setLayout(new GridLayout(10,10)); JButton knopf = null; add(panel); } public void menueZeileErzeugen() { //Konfiguration der Menuezeile. menueleiste = new JMenuBar(); menueleiste.setBackground(farbe3); setJMenuBar(menueleiste); //Konfiguration der verschiedenen Menues. dateimenue = new JMenu("Datei"); dateimenue.setForeground(farbe1); dateimenue.setBackground(farbe2); hilfemenue = new JMenu("Hilfe"); hilfemenue.setForeground(farbe1); hilfemenue.setBackground(farbe2); //Konfiguration der verschiedenen Menueeinträge starten = new JMenuItem("Starten"); starten.addActionListener(this); starten.setActionCommand("1"); starten.setForeground(farbe1); starten.setBackground(farbe2); zuruecksetzen = new JMenuItem("Neustarten"); zuruecksetzen.addActionListener(this); zuruecksetzen.setActionCommand("2"); zuruecksetzen.setForeground(farbe1); zuruecksetzen.setBackground(farbe2); ende = new JMenuItem("Beenden"); ende.addActionListener(this); ende.setActionCommand("3"); ende.setForeground(farbe1); ende.setBackground(farbe2); bedienung = new JMenuItem("Bedienungsanleitung"); bedienung.addActionListener(this); bedienung.setActionCommand("4"); bedienung.setForeground(farbe1); bedienung.setBackground(farbe2); version = new JMenuItem("Versionsdetails"); version.addActionListener(this); version.setActionCommand("5"); version.setForeground(farbe1); version.setBackground(farbe2); hilfemenue.add(version); hilfemenue.add(bedienung); dateimenue.add(starten); dateimenue.add(zuruecksetzen); dateimenue.add(ende); //Hinzufügen der Menues auf die Menuezeile. menueleiste.add(dateimenue); menueleiste.add(hilfemenue); setSize(500,400); } public void actionPerformed(ActionEvent e) { String befehl = e.getActionCommand(); if(befehl.equals("1")) { spiel.starten(); } if(befehl.equals("2")) { spiel.getSpielfeld().spielfeldResetten(); } if(befehl.equals("3")) { setVisible(false); dispose(); } if(befehl.equals("101")) { System.out.println("Guuuuuut"); } } }