All pastes #971054 Raw Edit

Vermischtes

public text v1 · immutable
·published 2008-04-04 13:57 UTC
rendered paste body


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<JButton> buttonliste;
        private JPanel panel;
        
        public Gui()
        {
            super("Schiffeversenken");
            spiel = new Schiffeversenken();   
            panel = new JPanel();
            buttonliste = new ArrayList<JButton>();
            
            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 bereits 1-7 vergeben sind wollte ich für die 100 felder buttons bei der nächsten graden 100er zahl anfangen...

            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);
        }  
          // ZUR ERKLÄRUNG: Ich hab bis jetz nur 1 Button in der ActionPerformed Methode berücksichtigt... Soweit Okay... Alle anderen machen bei einem Mausklick also nichts, was auch soweit in Ordnung ist.. Und wenn der Button mit dem ActionCommand "101" angeklickt wird kommt halt der nullpointer

         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");
            }
        }
    }