Ergebnis 1 bis 13 von 13
  1. #1
    Xburn Xburn ist offline
    Avatar von Xburn

    Java Quelltextfehler - Memory

    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[i][j] = new Karte1();
    k[i][j + 1] = new Karte2();
    k[i][j + 2] = new Karte3();
    k[i][j + 3] = new Karte4();
    k[i][j + 4] = new Karte5();
    k[i][j + 5] = new Karte6();
    k[i][j + 6] = new Karte7();
    k[i][j + 7] = new Karte8();

    x[i][0] = (60 + 150 * i);
    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;


    }
    }



    for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 8; j++) {
    {
    k[i][j].setBounds(x[i][j], y[i][j], 150, 113);
    f.getContentPane().add(k[i][j]);
    k[i][j].addMouseListener(this);
    }
    }
    }
    }


    public void fuehreAus(){
    for (int i = 0; i < 4; i++)
    for (int j = 0; j < 8; j++)
    k[i][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[i][j]) {
    k[i][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();
    }
    }

  2. Anzeige

    Java Quelltextfehler - Memory

    Schau dir mal diesen Bereich an. Dort ist für jeden was dabei!
  3. #2
    Xburn Xburn ist offline
    Avatar von Xburn

    AW: Java Quelltextfehler - Memory

    Zitat Aurel- Beitrag anzeigen
    Könntest du die Fehlerausgabe posten?
    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.

  4. #3
    Aurel-

    AW: Java Quelltextfehler - Memory

    1. Du hälst Stellenweise die Syntaxregeln nicht ein. Siehe z. B. Zeile 31:

    Code:
    for (int j = 0; j < 8; j = j + {
    2. Du legst ein Array vom Typ Karte an und versuchst Objekte zu erzeugen - hast aber keine Klasse Names Karte, von der man eine Instanz erzeugen könnte (-> Galileo Computing :: Java ist auch eine Insel - 3 Klassen und Objekte).

    Code:
    private Karte [][] k;
    
    k[i][j + 2] = new Karte3();
    k[i][j + 3] = new Karte4();
    .
    .
    ....
    Definier erstmal auf Papier was du machen wills - welche Sprachelemente und Klassen du dafür benötigst - und erst dann solltest du dich an einer Implementation versuchen.

  5. #4
    Speedy79 Speedy79 ist offline
    Avatar von Speedy79

    AW: Java Quelltextfehler - Memory

    Auf den schnellen Blick würde ich mal sagen, wenn der Compiler meckert, dass der Fehler in Zeile 41 ist, da mal zu schauen.
    Und: tatarata: x und y sind nicht instantiierte Arrays, also sind sie einfach null. Deswegen ist kein Wert zuweisbar, daher die Exception.

  6. #5
    Unregistriert

    AW: Java Quelltextfehler - Memory


    package memory;

    import java.applet.AudioClip;
    import java.awt.*;
    import javax.swing.*;


    public abstract class Karte extends JLabel{
    protected ImageIcon bild;
    protected AudioClip music;
    protected int x, y;
    protected boolean off;
    private boolean change;

    public Karte(){
    bild = new ImageIcon (this.getClass().getResource("deckblatt.gif"));
    music=JApplet.newAudioClip(this.getClass().getResource("butt on.wav"));
    x=10;
    y=10;
    setBounds(x, y, 120, 120);
    off=false;
    change=false;
    }

    public void hide(){
    this.setIcon(bild);
    this.setOff(false);
    }

    public abstract void show();
    public void delete(){
    music.play();
    setIcon(bild);
    setOff(true);
    }

    public void turn(){
    if(change){
    hide();
    }else{
    show();
    }
    change=!change;
    }

    public void setOff(boolean off){
    off=off;
    }

    public void setWert(int wert){
    wert=wert;
    }

    public boolean off(){
    return off;
    }

    }
    Das ist die Klasse Karte. Ich hab noch Subklassen dazu. Aber es funktioniert nicht.

    @Speedy79 : Wie behebe ich denn den Fehler? Mir wurde das so beigebracht.

  7. #6
    HardAndSoft HardAndSoft ist offline
    Avatar von HardAndSoft

    AW: Java Quelltextfehler - Memory

    Wie aurel schon sagte: Du hast die schliessende Klammer nach der Iteration vergessen. Deshalb wird versucht, ueber k zu iterieren, was an dieer Stelle noch nicht initialisiert ist.
    Mach die Klammer zu, dann findet sich der Rest.

  8. #7
    Unregistriert

    AW: Java Quelltextfehler - Memory

    Wo soll ich denn die Klammer schließen?

  9. #8
    HardAndSoft HardAndSoft ist offline
    Avatar von HardAndSoft

    AW: Java Quelltextfehler - Memory

    In der genannen Zeile, wo sonst?

    Ich denke mal, das j=j+ ist ein Programmierfehler; der muss korrigiert werden und dahinter die Iteration gechlossen.

    Viel Spass!

  10. #9
    Unregistriert

    AW: Java Quelltextfehler - Memory

    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 8; j = j + 8) {
    k[i][j] = new Karte1();
    k[i][j + 1] = new Karte2();
    k[i][j + 2] = new Karte3();
    k[i][j + 3] = new Karte4();
    k[i][j + 4] = new Karte5();
    k[i][j + 5] = new Karte6();
    k[i][j + 6] = new Karte7();
    k[i][j + 7] = new Karte8();



    x[i][0] = (60 + 150 * i);
    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;


    }
    }
    Irgendwas stimmt immer noch nicht. :/
    Tut mir Leid, ich bin einfach zu dumm für sowas.

  11. #10
    HardAndSoft HardAndSoft ist offline
    Avatar von HardAndSoft

    AW: Java Quelltextfehler - Memory

    Dann schildere doch mal die Symptome.
    Und melde Dich bei Forumla an; das dauernde Freischalten nervt.

  12. #11
    Speedy79 Speedy79 ist offline
    Avatar von Speedy79

    AW: Java Quelltextfehler - Memory

    Wie gesagt, soweit ich weiß, muss auch in Java ein Array direkt befüllt, oder seine Größe im Vorfeld festgelegt werden.
    Das machst du für x und y nicht, für k schon (k=new Karte [2][8].

  13. #12
    Unregistriert

    AW: Java Quelltextfehler - Memory

    Das mit x und y hab ich jetzt auch behoben. Es funktioniert jetzt. Also das Ding zeigt die Karten an und so. Er macht sie nicht von allein zu, was doof ist aber egal, hoffe ich.
    Danke Leute!
    Und sorry, dass ich nicht angemeldet bin. Ein Freund hat mir hier geholfen. Also es reingestellt und so. Danke.

  14. #13
    Xburn Xburn ist offline
    Avatar von Xburn

    AW: Java Quelltextfehler - Memory

    Auch von mir danke

Ähnliche Themen


  1. Java Programm<-->Java Applet: Hallo Leute, ich versuche grade, mir Java beizubringen, hab das mittlerweile auch in der Schule. Altbekannt ist da natürlich der Taschenrechner....

  2. Max Memory 4GB Memory Unit: hi hab die ,,Max Memory 4GB Memory Unit,, der speicher ist aufgeteillt in verschiedene ,,karten,, nun zum problem es wird nur 473mb angezeigt , ...

  3. Java auf ps3?: Hey hab da ne kleine Frage.Ich hab jezz ne ps3 und möchte jezz auf der ps3 gerne im i-net chatten, und brauche java z.b. für Knuddels.Ich hab gelesen...

  4. java auf psp: geht java auf psp?

  5. PSone Memory Card 4MB (60 Memory Blocks) in PS2?: Habe bereits 2x1MB Speicherkarten (für PSone mit je 15 Speicherblöcken) in meiner PS2 für PSone-Spiele benutzt! Jetzt habe ich mir so eine 4MB-Karte...