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
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: