Applet zeigt kein Bild an

  • moin, ich hab da n problem mit meinem applet Oo
    ich hab ne klasse "Test", die im moment nur ein bild anzeigen soll.das bild ist ein teil eines objektes von meiner anderen klasse "MyCursor".aber ich bekomm immer ne nullpointerexception ôo
    hier der code:

    Java
    import java.awt.*;
    
    
    public class MyCursor
    {
      int x;
      int y;
      Image cursor;
    }

    komplette fehlermeldung:
    Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
    at Test.paint(Test.java:35)
    at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
    at sun.awt.RepaintArea.paint(RepaintArea.java:224)
    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:301)
    at java.awt.Component.dispatchEventImpl(Component.java:4489)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Component.dispatchEvent(Component.java:4243)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)


    kann mir wer sagen woran das liegt?

  • Grundlagen in Java, Stichwort "deklarieren" und "initialisieren" , schau dazu mal in die Dokumentation.

    Konkret dürfte der fehler darin liegen, dass du in der Init-Methode einmal zuviel den "mycursor" deklarierst.


    Tip zur Exception: Nehme dir nach und nach vor , welches Objekt null sein könnte (ein Objekt , dass nicht aktiv initialisiert ist und kein primitiver Datentyp ist, ist immer default null)

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Hallo,

    es ist wie K.Y.L.T. sagt. du hast MyCursor einmal zuviel deklariert und initialisierst, dann die falsche Variable.

    Du legst mycursor einmal als Klassenvariable an und einmal legst du mycursor neu im Konstruktor an.
    Im Konstruktor müsste es so heißen

    Code
    mycursor = new MyCursor();



    Gruß

    Sascha

  • omg,doch so einfach..xD danke ^^
    ja ich muss die grundlagen von java noch etwas vertiefen *nod*

  • hab mal noch ne andere frage: ist es möglich repaint() nur auf bestimmte teile des applets anzuwenden? also so, dass nicht immer alles neu gemacht wird sondern nur ein kleines rechteck o.ä.
    oder quasi auf 2 flächen zu malen wovon repaint() nur die mit paint(Graphics g) gezeichnete fläche aktualisiert und die andere in ruhe lässt? dazu bräuchte man dann 2 methoden, einmal paint() und paint2() oder so...hab das schon ausprobiert aber ich brauch ja irgendwas womit ich paint2() aufrufen kann (also das "g").hab aber kein plan was das "g" eigentlich ist, weil paint() ja immer von alleine aufgerufen wird...*scratches head*

  • So wie du das machen möchtest wird es schwierig, der Lebenszyklus ist eine (feste) Konvention , die man einhalten muss.


    Du kannst die Methode Paint überschreiben, sodass du selber entscheiden kannst zusätzliche Methoden aufzurufen.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ