Neue Klasse mag nicht - nullPointerException

fisch100

Mitglied
Ich hab folgendes Problem: wenn ich von draw.java auf level.java zugreifen will bekomm ich immer eine "nullPointerException".
Von main.java auf draw.java funktioniert aber alles wunderbar ...

draw.java:
Java:
import java.applet.*;
import java.awt.*;
import java.lang.String;

public class Draw extends Main
{
  public Level level;
  public Values values;
  
  public char[] entrys;
  public String zeile;
  public int col;
  public int row;

  public void init()
  {
    level = new Level();
    values = new Values();
  }

  public void draw(Graphics g)
  {
    g.setColor(Color.yellow);
    g.drawRect(0, 0, 300, 300);
    
    drawChar(g);
    drawlevel(g);
  }
  
  public void drawChar(Graphics g)
  {
    g.setColor(Color.blue);
    g.drawOval(150, 150, 20, 20);
  }

  public void drawlevel(Graphics g)
  {
    for (col = 0; col < 4; col++)
    {
      //zeile = "AAAB";
      zeile = level.levelline;
      char [] entrys = zeile.toCharArray();
      
      for (row = 0; row < 4; row++)
      {
        if(entrys[row] == 'A')
        {
          //System.out.println('A');
        }
        else if(entrys[row] == 'B')
        {
          //System.out.println('B');
        }
        else
        {
          System.out.println("other");
        }
      }
    }
  }
}

level.java:
Java:
public class Level
{
  public String levelline = "ABAB";
}

ich bin zwar noch nicht ganz durch das kapitel vererbung ... aber was ich bis jetzt so gelesen hab sollte es doch eigentlich gehen (aber ich scheine mich zu irren sonst würde es ja doch gehen :/ )

edit: liegt es vielleicht daran das ich den parameter "graphics g" gerade verwende und mir einen stringe geben lassen möchte - und deswegen nicht geht?! - wenn ja: wie umgehe ich das?
 
Zuletzt bearbeitet:
das wäre main - ja wozu main frag ich mich selber - ist noch von vorher bevor ich überhaupt genau gewusst hab was genau das tut 😉

Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Main extends Applet implements Runnable
{
   Thread th;
   
   Draw draw;

   public void init()
   {
     setBackground (Color.yellow);
     draw = new Draw();
   }
   
   public void start()
   {
     th = new Thread(this);
     th.start();
   }
   
   public void stop()
   {

   }
   
   public void destroy()
   {

   }
   
   
   public void run()
   {
     Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

     while(true)
     {


       try
       {         
         repaint();
         th.sleep(1000);
       }
       
       catch(InterruptedException ex)
       {
         //do nothing
       }
       Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
     }
   }
   
   public void paint(Graphics g)
   {
     draw.draw(g);
   }
}
 
Ok, da laufen nen paar Dinge falsch:
- draw darf nicht von Main ableiten, es ist ja schließlich kein applet
- die init Methode von Draw wird nie aufgerufen, daher ist level null und du bekommst die NPE
allgemein solltest du dir vllt nochmal gedanken zur struktur von deinem programm machen
 
naja ... ist immerhin mein erstes größeres projekt was neben dem lesen entsteht - das darf noch etwas "komisch" sein 😉

vielen dank =)
wäre sonst wohl nie(?^^ aber ich denke schon xD) draufgekommen =)
 

Zurück
Oben