Xburn Geschrieben 1. Juli 2013 Geschrieben 1. Juli 2013 Hey Leute hier kommt jemand hier weiter :/ Kann mir jemand den Fehler nennen ? Das Spiel was programmiert wird ist Memory, kennt warscheinlich jeder Lg und vielen dank im vorraus ! Testklasse: package memory; import java.awt.*; import java.awt.event.*; import java.util.Random; import javax.swing.*; public class TestKlasse implements MouseListener, ActionListener{ private JFrame f; private JButton end; private Karte [][] k; private int[][] x; private int[][] y; public TestKlasse() { f=new JFrame(); f.setBackground(Color.GRAY); f.setBounds(100, 100, 900, 700); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().setLayout(null); f.setVisible(true); end = new JButton("END"); end.setBounds(730, 620,120,30); f.getContentPane().add(end); end.addActionListener(this); k=new Karte [2][8]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 8; j = j + { k[j] = new Karte1(); k[j + 1] = new Karte2(); k[j + 2] = new Karte3(); k[j + 3] = new Karte4(); k[j + 4] = new Karte5(); k[j + 5] = new Karte6(); k[j + 6] = new Karte7(); k[j + 7] = new Karte8(); x[0] = (60 + 150 * i); y[0] = 50; x[1] = (60 + 150 * i); y[1] = 200; x[2] = (60 + 150 * i); y[2] = 350; x[3] = (60 + 150 * i); y[3] = 500; x[4] = (60 + 150 * (i + 2)); y[4] = 50; x[5] = (60 + 150 * (i + 2)); y[5] = 200; x[6] = (60 + 150 * (i + 2)); y[6] = 350; x[7] = (60 + 150 * (i + 2)); y[7] = 500; } } for (int i = 0; i < 4; i++) { for (int j = 0; j < 8; j++) { { k[j].setBounds(x[j], y[j], 150, 113); f.getContentPane().add(k[j]); k[j].addMouseListener(this); } } } } public void fuehreAus(){ for (int i = 0; i < 4; i++) for (int j = 0; j < 8; j++) k[j].hide(); } public void mische() { k[1][2] = k[1][7]; k[1][7] = k[1][2]; k[1][1] = k[0][5]; k[0][5] = k[1][4]; k[1][1] = k[0][1]; k[0][1] = k[1][1]; k[0][3] = k[0][4]; k[0][4] = k[0][3]; } public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } public void mousePressed(MouseEvent event) { for (int i = 0; i < 4; i++) { for (int j = 0; j < 8; j++) { if (event.getSource() == k[j]) { k[j].turn(); } if(k[0][j].off()==true && k[1][j].off()==true){ k[0][j].setBounds(750,400,150, 113); k[1][j].setBounds(750,400,150, 113); } } } } public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } public void actionPerformed(ActionEvent action) { if (action.getSource()==end){ System.exit(0); } } } Startklasse: public class StartKlasse { public static void main(String[] args) { TestKlasse tk = new TestKlasse(); tk.fuehreAus(); } } Zitieren
Klotzkopp Geschrieben 1. Juli 2013 Geschrieben 1. Juli 2013 Wie äußert sich denn "der Fehler"? Zitieren
Xburn Geschrieben 1. Juli 2013 Autor Geschrieben 1. Juli 2013 Wie äußert sich denn "der Fehler"? Exception in thread "main" java.lang.NullPointerException at memory.TestKlasse.<init>(TestKlasse.java:41) at memory.StartKlasse.main(StartKlasse.java:7) Das steht da. Also beim nullpointer. Zitieren
Schiller256 Geschrieben 1. Juli 2013 Geschrieben 1. Juli 2013 Was ist denn in der Zeile 41 deiner TestKlasse? Denn dort versuchst du auf eine null Referenz zuzugreifen. Bei dem Spagetti Code würde ich jetzt mal darauf tippen dass das Problem beim Zugriff auch ein Array x liegt. k=new Karte [2][8]; for (int i = 0; i < 2; i++) { // deine for schleife lässt sich so nicht kompilieren for (int j = 0; j < 8; j = j + { ... x[i][0] = (60 + 150 * i); // das könnte Zeile 41 sein dein x hast du aber nie instanziert und greifst aber darauf zu y[i][0] = 50; x[i][1] = (60 + 150 * i); y[i][1] = 200; x[i][2] = (60 + 150 * i); y[i][2] = 350; x[i][3] = (60 + 150 * i); y[i][3] = 500; x[i][4] = (60 + 150 * (i + 2)); y[i][4] = 50; x[i][5] = (60 + 150 * (i + 2)); y[i][5] = 200; x[i][6] = (60 + 150 * (i + 2)); y[i][6] = 350; x[i][7] = (60 + 150 * (i + 2)); y[i][7] = 500; } } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.