Problem beim Programmieren eines Kartenspiels

Elek-tronik

Neues Mitglied
Das ist bis jetzt mein Programmtext, mein Problem ist es, das die Punktzahl der einzelnen Spieler nicht angezeigt wird.Es wäre nett, wenn mir wer sagen könnte woran es liegt.Unten ist auch noch die Fehlermeldung.
Meiner Meinung nach müsste das Problem ab Zeile 259 liegen, aber ich finde den Fehler nicht.
Schonmal danke im vorraus für die Antworten

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.ImageIcon;
import java.lang.String;
/**
 *
 * Beschreibung.
 *
 * @version 1.0 vom 15.04.2010
 * @author
 */

public class GUI extends JFrame {
    // Anfang Variablen
    // Anfang Attribute
    private KartenSpiel karten = new KartenSpiel();
    private JButton buttonKartenMischen = new JButton();
    private JButton buttonSpielennormal = new JButton();
    private JLabel[] alleLabels = new JLabel[32];
    private JLabel labelspieler1= new JLabel();
    private JLabel labelspieler2= new JLabel();
    private JLabel labelspieler3= new JLabel();
    private JLabel labelpunkte1= new JLabel();
    private JLabel labelpunkte2= new JLabel();
    private JLabel labelpunkte3= new JLabel();
    private JLabel labelname1 = new JLabel();
    private JLabel labelname2 = new JLabel();
    private JLabel labelname3 = new JLabel();
    Container cp;
    Spieler Spieler1 = new Spieler();
    Spieler Spieler2 = new Spieler();
    Spieler Spieler3 = new Spieler();
    String spielername1 = new String();
    String spielername2 = new String();
    String spielername3 = new String();
    
    Karte[] kartenmerker = new Karte[32]; // merkt sich welche Karte wohin gemischt wurde.
    Karte[] spielerkarten1 = new Karte[10];
    Karte[] spielerkarten2 = new Karte[10];
    Karte[] spielerkarten3 = new Karte[10];
    
    

    // Ende Variablen

    public static void main(String[] args) {

    }
    //Konstruktor
    public GUI(String name1, String name2, String name3) {
        
        // Frame-Initialisierung
        super("Kartenspiel");
        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent evt) { System.exit(0); }
            });
        int frameWidth = 1000;
        int frameHeight = 600;
        setSize(frameWidth, frameHeight);
        cp = getContentPane();
        cp.setLayout(null);
        
    

    // Anfang Komponenten


    labelspieler1.setBounds(10,10,100,25);
    labelspieler1.setText("Spieler1");
    
    labelspieler2.setBounds(230,10,100,25);
    labelspieler2.setText("Spieler2");
    
    labelspieler3.setBounds(450,10,100,25);
    labelspieler3.setText("Spieler3");
    
    spielername1 = name1;
    spielername2 = name2;
    spielername3 = name3;
    
    labelname1.setBounds(120,10,100,25);
    labelname1.setText(spielername1);
    
    labelname2.setBounds(340,10,100,25);
    labelname2.setText(spielername2);
    
    labelname3.setBounds(560,10,100,25);
    labelname3.setText(spielername3);
    
    labelpunkte1.setBounds(120,50,100,25);

    
    labelpunkte2.setBounds(340,50,100,25);

    
    labelpunkte3.setBounds(560,50,100,25);

    
    buttonKartenMischen.setBounds(10, 500, 100, 25);
    buttonKartenMischen.setText("Mischen");
    buttonKartenMischen.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent evt) {
           buttonKartenMischenActionPerformed();
        } 
    });

    cp.add(buttonKartenMischen);
    
    buttonSpielennormal.setBounds(130, 500, 100, 25);
    buttonSpielennormal.setText("Spielen");
    buttonSpielennormal.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent evt) {
            spielenNormal(); 
        } 
    });

    cp.add(buttonSpielennormal);     
    cp.add(labelname1);
    cp.add(labelname2);
    cp.add(labelname3);
    cp.add(labelspieler1);
    cp.add(labelspieler2);
    cp.add(labelspieler3);
    cp.add(labelpunkte1);
    cp.add(labelpunkte2);
    cp.add(labelpunkte3);
    setResizable(true);
    setVisible(true);

    for(int i =0; i<10; i++)
    {
        alleLabels[i] = new JLabel();
        alleLabels[i].setBounds(10+i*95, 100, 100, 100);
        alleLabels[i].setIcon(karten.kartenarray[i].getBild());
        cp.add(alleLabels[i]);
    }
    
    for(int i =10; i<20; i++)
    {
        alleLabels[i] = new JLabel();
        alleLabels[i].setBounds(10+(i-10)*95,210, 100, 100);
        alleLabels[i].setIcon(karten.kartenarray[i].getBild());
        cp.add(alleLabels[i]);
    }
    
    for(int i =20; i<30; i++)
    {
        alleLabels[i] = new JLabel();
        alleLabels[i].setBounds(10+(i-20)*95, 320, 100, 100);
        alleLabels[i].setIcon(karten.kartenarray[i].getBild());
        cp.add(alleLabels[i]);
    }
    
    
   for (int i = 0; i <= 31 ; i++)
   {
       kartenmerker[i] = karten.kartenarray[i];
  }
    
    
    
}// Ende Komponenten

    // Anfang Ereignisprozeduren
    
    
    
    //Prozedur zum Karten Mischen
    public void buttonKartenMischenActionPerformed()
    {
        int[] karte = new int[32]; //Originalkartenarray
        int[] karteRandom = new int[32];
        int rang  ; // Rang der gezogenen Karte
        int gezKarte  ; // die gezogene Karte
        int limit; // die Anzahl der noch zu ziehenden Karten
        int hilf = 0; //Hilfsvariable um 2 Karten zu vertauschen
        //Array mit den Zahlen von 0-31 füllen, diese stehen für die Karten der Klasse Kartenarray
        for (int i = 0; i <= 31 ; i++)
        {
            karte[i] = i; 
        }
        limit = karte.length-1;
        // Ziehen der Karten
        for (int k = 0; limit >= 0; k++ )
        { 
            // zufällige Karte ziehen
            rang = (int) (Math.random()*limit);
            gezKarte = karte[rang]; 

        //gezogene Karte kommt ans Ende, durch das verringern von Limit wird sie nicht mehr berücksichtigt
        hilf = karte[limit];
        karte[limit] = gezKarte;
        karte[rang] = hilf;
        karteRandom[k] = gezKarte;
        // limit wird verringert, weil eine Karte weg ist
        limit--;
        }
        
        for(int i = 0; i <= 31; i++)
        {
            kartenmerker[i] = karten.kartenarray[i];
        }
        
          
        // Ausgabe der gezogenen Karte
        for(int i =0; i < 30 ; i++)
        {
            alleLabels[i].setIcon(karten.kartenarray[karteRandom[i]].getBild());
        }


    }//Ende Karten Mischen

    
    public void verteilen()
    {

        for(int i=0; i <10; i++)
        {
            spielerkarten1[i] = kartenmerker[i];

        }

        for(int i=10; i <20; i++)
        {
            spielerkarten1[i-10] = kartenmerker[i];

        }

        for(int i=20; i <30; i++)
        {
            spielerkarten1[i-20] = kartenmerker[i];

        }
    }

     /* public void stichwert()
      {
          for( int i=0; i<10; i++)
          {
            int stichwert = spielerkarten1[i].getWert()+spielerkarten2[i].getWert()+spielerkarten3[i].getWert(); 
        }
     }*/
     
    public void spielenNormal()
    {
        
        verteilen();
        int pktzahl = 0;
        for(int i=0; i<10; i++)
        {
           

       if(i < 9){
           
            if( (  spielerkarten1[i].getRang() > spielerkarten2[i].getRang() ) && ( spielerkarten1[i].getRang()>spielerkarten3[i].getRang() )  )
            { 
                
               int stichwert = spielerkarten1[i].getWert()+spielerkarten2[i].getWert()+spielerkarten3[i].getWert(); 
                Spieler1.erhoehe_pktstand(stichwert);  
            }  
            
            if( (  spielerkarten2[i].getRang() > spielerkarten1[i].getRang() ) && ( spielerkarten2[i].getRang()>spielerkarten3[i].getRang() )  )
            { 
                
                int stichwert = spielerkarten1[i].getWert()+spielerkarten2[i].getWert()+spielerkarten3[i].getWert(); 
                Spieler2.erhoehe_pktstand(stichwert);  
            }  
            
            if( (  spielerkarten3[i].getRang() > spielerkarten2[i].getRang() ) && ( spielerkarten3[i].getRang()>spielerkarten1[i].getRang() )  )
            { 
                
                int stichwert = spielerkarten1[i].getWert()+spielerkarten2[i].getWert()+spielerkarten3[i].getWert(); 
                Spieler3.erhoehe_pktstand(stichwert);  
            }  
            
            
                    
        else
        {
            if( (spielerkarten1[i].getRang()>spielerkarten2[i].getRang()) && (spielerkarten1[i].getRang()>spielerkarten3[i].getRang()) )
            {
                pktzahl = pktzahl +karten.kartenarray[30].getWert()+karten.kartenarray[31].getWert();
                Spieler1.erhoehe_pktstand(pktzahl);
                
            } 
            if( (spielerkarten2[i].getRang()>spielerkarten1[i].getRang()) && (spielerkarten2[i].getRang()>spielerkarten3[i].getRang()) )
            {
                pktzahl = pktzahl +karten.kartenarray[30].getWert()+karten.kartenarray[31].getWert();
                Spieler2.erhoehe_pktstand(pktzahl);  
            }
            if( (spielerkarten3[i].getRang()>spielerkarten2[i].getRang()) && (spielerkarten3[i].getRang()>spielerkarten1[i].getRang()) )
            {
                pktzahl = pktzahl +karten.kartenarray[30].getWert()+karten.kartenarray[31].getWert();
                Spieler3.erhoehe_pktstand(pktzahl);
                
            }  
        }

    }//Ende if
    }///Ende for
    String hilf1;
    String hilf2;
    String hilf3;
    hilf1 = String.valueOf(Spieler1.get_pktstand());
    hilf2 = String.valueOf(Spieler2.get_pktstand());
    hilf3 = String.valueOf(Spieler3.get_pktstand());
    System.out.println(hilf1);
    System.out.println(hilf2);
    System.out.println(hilf3);   
    labelpunkte1.setText(hilf1);
    labelpunkte2.setText(hilf2);
    labelpunkte3.setText(hilf3);
    }//Ende spielenNormal   

}


Fehlermeldung

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at GUI.spielenNormal(GUI.java:260)
	at GUI$3.actionPerformed(GUI.java:116)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6267)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6032)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4630)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4460)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4460)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
In dem Code steht in Zeile 260 eine Klammer, was steht in der Originaldatei an dieser Stelle? Jedenfalls wird irgendwas null sein! Prüfe das!
 

Volvagia

Top Contributor
Du rufst in 259 4 Methoden auf, eine der Variablen von denen aufgerufen wird wird wohl null sein. Am einfachsten wird wohl sein die Variablen in die Standartausgabe zu feuern, oder den Debuger anzuwerfen und sie dort zu prüfen.
Warum steht in den anderen beiden Exception-Traces eigendlich 260? ???:L
 

Elek-tronik

Neues Mitglied
schonmal danke für die schnellen Antworten bei den Exception traces, hab ich nur vergessen die vorher einmal zu löschen es ist einfach 2mal das gleiche.... sry für diese verwirrung
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
G Problem beim Programmieren von Blackjack Java Basics - Anfänger-Themen 15
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
B Gleicher Prozess starten und stoppen (Problem beim Stoppen) Java Basics - Anfänger-Themen 5
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
B Problem beim Angeben einer Eingabe Java Basics - Anfänger-Themen 12
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
fLooojava Bluetooth Projekt - Problem beim mehrmaligen Senden Java Basics - Anfänger-Themen 5
E Problem beim Übergeben von Parameter an Methode Java Basics - Anfänger-Themen 2
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
F Input/Output Problem beim einlesen eines Strings Java Basics - Anfänger-Themen 3
J Problem beim auslesen von Int Wert aus YML-Datei Java Basics - Anfänger-Themen 6
P Problem beim Abschluss im Kompositum Java Basics - Anfänger-Themen 3
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
J Problem beim ausführen in cmd.exe Java Basics - Anfänger-Themen 4
J Variablen Problem beim einlesen einer Zahl Java Basics - Anfänger-Themen 7
A Problem beim Compilieren Java Basics - Anfänger-Themen 11
J Problem beim Fenster Java Basics - Anfänger-Themen 4
tux20 Problem beim Schreiben von List to File Java Basics - Anfänger-Themen 2
M Problem beim Compilieren Java Basics - Anfänger-Themen 14
Maxim6394 Problem beim Abspielen von Sounds Java Basics - Anfänger-Themen 8
S Problem beim ersten compilieren überhaubt Java Basics - Anfänger-Themen 43
H Problem beim lesen des InputStreams von einem Subprozess Java Basics - Anfänger-Themen 4
Luk10 Problem beim .jar Datei erstellen Java Basics - Anfänger-Themen 19
L Problem beim Ausführen Java Basics - Anfänger-Themen 40
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
M Problem beim compilieren Java Basics - Anfänger-Themen 6
JAVAnnik problem beim lvl laden Java Basics - Anfänger-Themen 15
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
W Problem beim erstellen eines Tests Java Basics - Anfänger-Themen 16
JAVAnnik Problem beim Objekt bewegen Java Basics - Anfänger-Themen 20
A Erstes Programm - Problem beim Ausführen als jar Java Basics - Anfänger-Themen 3
S Problem beim Speichern und Laden von Daten Java Basics - Anfänger-Themen 13
B Problem beim Abspielen einer Videodatei Java Basics - Anfänger-Themen 4
S Problem beim Erstellen eines Scanner-Objekts Java Basics - Anfänger-Themen 7
W Problem beim CSV-Import Java Basics - Anfänger-Themen 5
M Datentypen Problem beim zusammenstellen eines Abfrage-Strings Java Basics - Anfänger-Themen 3
K Collections Problem beim import von Packages Java Basics - Anfänger-Themen 10
S Problem beim Kompilieren - cannot find symbol - constructor() Java Basics - Anfänger-Themen 12
B Problem beim Email versenden mit Javamail Java Basics - Anfänger-Themen 5
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
I Problem beim Schreiben eines ersten Programms Java Basics - Anfänger-Themen 3
D Problem beim Zeichnen von "Das Haus vom Nikolaus" Java Basics - Anfänger-Themen 10
D Problem beim Auslesen aus File Java Basics - Anfänger-Themen 3
A Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 10
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
J Problem beim Löschen von elementen aus einer ArrayList Java Basics - Anfänger-Themen 5
V Problem beim Programm laden Java Basics - Anfänger-Themen 5
H Problem beim kompilieren Java Basics - Anfänger-Themen 3
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
4 OOP Problem beim Speichern verschiedener Klassen in verschiedenen Dateien Java Basics - Anfänger-Themen 25
T Problem beim Returnwert einer Methode Java Basics - Anfänger-Themen 12
M line.separator: Problem beim Lesen einer Datei Java Basics - Anfänger-Themen 11
Miladriel Problem beim Neuzeichnen nach deiconify Java Basics - Anfänger-Themen 9
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
G Problem beim Sortieren einer Liste Java Basics - Anfänger-Themen 20
M Problem beim Ereignishandling mit Menü Java Basics - Anfänger-Themen 2
H problem beim zeichen im JFrame Java Basics - Anfänger-Themen 6
F Problem beim Objekteaufruf... Java Basics - Anfänger-Themen 4
E BlockChallenge: Problem beim löschen der Blöcke Java Basics - Anfänger-Themen 3
H Problem beim Verkürzen von Programm Java Basics - Anfänger-Themen 3
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
M Problem beim Zugriff auf Daten GUI + Startklasse Java Basics - Anfänger-Themen 4
P Problem beim Thread Java Basics - Anfänger-Themen 20
0 problem beim Polygon zeichnen Java Basics - Anfänger-Themen 3
V Problem beim erstellen eines ausführbaren Programs Java Basics - Anfänger-Themen 5
0 Problem beim Starten des Applets Java Basics - Anfänger-Themen 2
N Problem beim Durchsuchen einer LinkedList Java Basics - Anfänger-Themen 5
R Problem beim Laden eines Images Java Basics - Anfänger-Themen 7
K Problem beim installieren des JDK 1.6+ version Java Basics - Anfänger-Themen 3
T Problem beim Konsolenstart Java Basics - Anfänger-Themen 5
C Problem beim Berechnen der Quadratwurzel Java Basics - Anfänger-Themen 3
C Problem beim nutzen von Teilprogrammen in main Java Basics - Anfänger-Themen 2
M Problem beim Zeichnen Java Basics - Anfänger-Themen 5
D Problem beim Kompilieren Java Basics - Anfänger-Themen 4
D Problem beim auslesen von TextArea Java Basics - Anfänger-Themen 3
G Problem beim Schreiben in Textdatei Java Basics - Anfänger-Themen 9
F ggT finden - problem beim qc Java Basics - Anfänger-Themen 4
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Habe ein Problem mit syn-Editor ( beim compilieren) Java Basics - Anfänger-Themen 4
S Problem beim Verstehen des Quellcodes Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben