Fehler im handleEvent



  • Also ich hab mich vor ner guten Stunde entschlossen, mal etwas java zu lernen..

    Eigentlich mach ich diese Sprache garnicht 😃

    Wie dem auch sei. Ich habe kein Interesse an Applets, sondern möchte portable GUI-Progs nutzen.

    Mein Programm zum Testen sieht momentan so aus :

    import java.awt.*;
    
    public class test extends Frame
    {
      private Graphics gr;
    
      public int DrawPoint (int X, int Y)
      {
    
         this.gr.drawRect ( X, Y, 1, 1);
    
         return 0;
    
      }
    
      public boolean handleEvent (Event evt)
      {
    	  switch(evt.id)
    	  {
    	  	  case Event.WINDOW_DESTROY:
    	  	         System.exit(0);
    	  	         break;
    	  	  case Event.MOUSE_DOWN:
    	  	  	     DrawPoint ( evt.x, evt.y);
    	  	  	     break;
          }
    
          return super.handleEvent(evt);
      }
    
      public static void main(String args[])
      {
        test myWin = new test();
    
        myWin.resize(640, 480);
        myWin.setTitle("Mein Java Test!");
        myWin.show();
      }
    }
    

    klicke ich nun auf mein Fenster, passiert dieses hier.

    Exception occurred during event dispatching:
    java.lang.NullPointerException
    at test.DrawPoint(test.java)
    at test.handleEvent(test.java)
    at java.awt.Window.postEvent(Window.java:451)
    at java.awt.Component.dispatchEventImpl(Component.java:1776)
    at java.awt.Container.dispatchEventImpl(Container.java:935)
    at java.awt.Window.dispatchEventImpl(Window.java:443)
    at java.awt.Component.dispatchEvent(Component.java:1704)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:63)
    Drücken Sie eine beliebige Taste . . .

    Werwiewaswannwo und warum ist das ?

    Ich gebe zu, ich habe noch nicht sehr viel Hintergrundwissen zu java (arbeite ja dran 😉 ) also schlagt mich nicht gleich tot 😮



  • Du initialisierst gr nicht. Mach das mit

    gr = this.getGraphics();
    


  • Öhm.. klar.
    Bevor ich auf nem Device was schreiben kann, muss ich ihm sagen, welches Device das ist ^^


Anmelden zum Antworten