problem mit einer var

J

_java_freak_

Gast
Hi
ich programmiere gerade ein kleines spiel. Ziel ist es 100 kästchen abzuschißen.Mein problem ist ich habe eine variable (durchgang1) die anzeigt ob ich die klasse nocherzeugen muss oder ob sie das schon ist. In der paint methode frage ich nun ob diese var true oder false ist. Wenn sie false ist muss die klasse noch erzeugt werden wenn sie true ist werden die x und y koordinaten aktualisirt.Gerade sollen 100 kästchen oben in der mitte angezeigt werden ein dreieck unten und wenn ich klicke sollte das unterste kästchen auf der position wo ich gedrückt habe weggehen Hier ist mein code:
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import javax.swing.*;
import java.awt.geom.*;

public class spiel extends Thread implements MouseMotionListener
{
  static window win;
  static Graphics2D g2d;
  static int posx=250;
  static int posy=40;
  static int level=1;
  public static gegner g;
  static int posx1=250, posy1=695;
  static boolean durchgang1=false;
  
  public static void main(String[] args)
  {
    new spiel(); //maus listener und fenster erstellen
  }
  
  public spiel()
  {
    win = new window();
    win.addMouseListener(new maus());
    win.addMouseMotionListener(this);
  }
  
  public static class maus implements MouseListener
  {
    public void mouseClicked(MouseEvent e)
    {
      kolision(e.getX() );
    }
    public void mousePressed(MouseEvent e)
    {
      kolision(e.getX() );
      win.repaint();
    }
    public void mouseExited(MouseEvent e)
    {

    }
    public void mouseEntered(MouseEvent e)
    {

    }
    public void mouseReleased(MouseEvent e)
    {

    }

  }
  
    public void mouseDragged(MouseEvent e)
    {
      posx1=e.getX();
      win.repaint();
    }

    public void mouseMoved(MouseEvent e)
    {
      posx1=e.getX();
      win.repaint();
    }
    
    public static  int kolision(int x)//schauen welches kästchen jetzt nicht mehr "lebt" nach klicken
    {
      for(int a=9;a>=0;--a)
      {
        for(int i=9;i>=0;--i)
        {
          if(g.getX((a*10)+i)<=x && g.getX((a*10)+i)+30 >=x)
          {
            if(g.lebt[(a*10)+i]==true)
            {
              g.lebt[(a*10)+i]=false;
              return(0);
            }
          }
        }
      }
      return(0);
    }


  static class window extends Frame
  {
    public window()
    {
      addWindowListener(new WindowAdapter()
      {
        public void windowClosing(WindowEvent evt)
        {
            dispose();
        }
      });
      setSize(900, 700);
      setVisible(true);
      setResizable(false);
    }

    public void paint(Graphics g1)
    {
      g2d = (Graphics2D) g1;
      durchgang1=false;
      
      if(durchgang1==false)//hier ist das problem glaube ich
      {
        durchgang1=true;
        g.lebtReset();
        g=new gegner(posx, posy, level, g2d);
        g2d.drawRect(101,10,100,100);
      }
      
      else if(durchgang1==true)
      {
        g.setPosx(posx);
        g.setPosy(posy);
      }
      
      GeneralPath ich=new GeneralPath();
      ich.moveTo(posx1, posy1-25);
      ich.lineTo(posx1+25, posy1 );
      ich.lineTo(posx1-25, posy1 );
      ich.lineTo(posx1, posy1-25 );

      g2d.draw(ich);
    }
  }
}


class gegner
{
  int posx, posy;
  boolean[] lebt=new boolean[100];
  int level;
  Graphics2D g2d;
  int[] positionenX=new int[100];
  
  public gegner(int x, int y, int levell, Graphics2D g2)
  {
    posx=x;
    posy=y;
    level=levell;
    g2d=g2;
    
    if(level==1)
    {
      level1();
    }
  }
  
  public void level1()//kästchen werden gezeichnet
  {
    for(int a=0;a<=9;++a)
    {
      for(int i=0;i<=9;++i)
      {
        if( lebt[ (a*10) +i]==true )
        {
          g2d.drawRect(posx+ (40*i), (posy+ (40*a) ), 30, 30);
          positionenX[ (a*10) +i] =posx+ (40*i);
        }
      }
    }
  }
  
  public void lebtReset()
  {
    for(int i=0;i<=99;++i)
    {
      lebt[i]=true;
    }
  }

  public int getX(int i)
  {
    return(positionenX[i]);
  }
  
  public void setX(int i, int x)
  {
    positionenX[i]=x;
  }
  public void lebtFalse(int i)
  {
    lebt[i]=false;
  }
  
  public void setPosx(int i)
  {
    posx=i;
    if(level==1)
    {
      level1();
    }
  }
  
  public void setPosy(int i)
  {
    posy=i;
    if(level==1)
    {
      level1();
    }
  }
  public void setLevel(int i)
  {
    level=i;
    if(level==1)
    {
      level1();
    }
  }
}
Die exceptions lassen sich leider nicht kopieren und da ich hier nicht tagelang schreiben will nur ein sehr kleiner teil:
Code:
ecxeption in thread"AWT-EventQueue-0" java. lang.NullPointerEcxpetion
        at spiel$window.paint(spiel.java:116)
in dieser art gibt es noch ca. 100.000 weitere wahrscheinlich mehr.
 
M

Marcinek

Gast
Schon mal die Kollegen von google zu der Fehlermelfung befragt? - Die kommt mir bekannt vor:autsch:
 
S

SlaterB

Gast
wenn man die gepostete Exception mit dem Tippfehler so sucht, bekommt man nur diesen Thread hier als einziges Ergebnis ;)
auch sonst etwas sportlich, dass als allgemeinen Fehler finden zu können,

allerdings hilft die Fehlermeldung doch, ist immer dieselbe, sie lautet in etwa:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at test.spiel$window.paint(Test.java:140)
	at java.awt.Container.update(Unknown Source)
	at sun.awt.RepaintArea.updateComponent(Unknown Source)
	at sun.awt.RepaintArea.paint(Unknown Source)
in der paint-Methode in der genannten Zeile (bei mir eine andere) liegt der Fehler,
die statische Variable g ist dort nämlich null, wird erst eine Zeile später gesetzt...,
du hast vielleicht nicht bedacht dass sie zumindest am Anfang einmal nicht gesetzt ist

Java:
        g.lebtReset();
        g=new gegner(posx, posy, level, g2d);

grundsätzlich ist es extrem zu vermeiden, in der paint-Methode irgendwelche wichtigen Programmdaten zu erzeugen oder auch nur zu ändern

falls ich dir den Link nicht schon ein oder mehrmals gepostet habe:
http://www.java-forum.org/spiele-multimedia-programmierung/54795-quaxli-2d-spiele-tutorial.html
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
W Problem mit Index in einer for-Schleife Allgemeine Java-Themen 8
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
J Problem beim Auslesen einer Datei vom Server Allgemeine Java-Themen 4
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
D Problem bei der Darstellung einer trigonometrischen Funktion Allgemeine Java-Themen 2
N Problem beim lesen einer File in JAR-File Allgemeine Java-Themen 3
H Problem beim Sortieren einer HashMap mit TreeSet Allgemeine Java-Themen 4
M Problem bei einer Baumausgabe auf der Konsole Allgemeine Java-Themen 3
F Bluetooth / Synchronisation : Problem mit einer Bluetoothanwendung Allgemeine Java-Themen 3
M Problem mit Zeichen aus einer Datei auslesen Allgemeine Java-Themen 2
Apo JNI-Problem beim erneuten Laden einer dll Allgemeine Java-Themen 28
A Problem beim serialisieren/deserialisieren einer ArrayList Allgemeine Java-Themen 3
A Problem mit Öffnen einer Datei Allgemeine Java-Themen 3
S Problem mit einer Klasse Allgemeine Java-Themen 10
A Problem mit dem Auslesen aus einer Datei Allgemeine Java-Themen 4
D Problem bei Aufruf einer Funktion Allgemeine Java-Themen 3
G Problem mit einer Variable Allgemeine Java-Themen 3
E Problem beim Anlegen einer Datei Allgemeine Java-Themen 4
D Problem bei einer Berechnung (pow?) Allgemeine Java-Themen 3
O Problem mit einer Methode Allgemeine Java-Themen 2
C Problem mit Class.getResource() in einer Jar-Datei Allgemeine Java-Themen 4
B problem beim erstellen einer ausführbaren jar-datei Allgemeine Java-Themen 5
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
S jserialcomm Problem Allgemeine Java-Themen 1
Flynn Thread-Problem... Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
G Problem beim GUI Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7

Ähnliche Java Themen


Oben