Witam.
Nie umiem dojść co jest złego w takim kodzie:

import javax.swing.JApplet;
import java.awt.Image;
import java.awt.Graphics;

public class Testgraf extends JApplet {
    Image  img;
    Graphics gimg;
    Grafika element=null;
    
    @Override
    public void init() {
        img = createImage(50, 50);
        gimg = img.getGraphics();
        element = new Grafika(img);
    }
    
    @Override
    public void start(){
    }
    
    @Override
    public void stop(){
    }
    
    public void run() {
while(true){
           while(true)repaint();
        }
    }
}
</ code>


i drugi plik Grafika.java:


< code =java >import java.awt.Image;
import javax.swing.JApplet;
import java.awt.Graphics;

class Grafika  extends JApplet{

    Image obraz;
    Graphics graf  ;
    
    public Grafika(Image obrazek){
        
            obraz = createImage(50, 50);

            graf = this.obraz.getGraphics();
            graf.drawRect(1, 1, 20, 20);
            graf.drawImage(obrazek, 0, 0, rootPane);
    }
}</ code>

Kompilacja jest OK. Ale po uruchomieniu od razu jest błąd

java.lang.NullPointerException
at Grafika.<init>(Grafika.java:14)
at Testgraf.init(Testgraf.java:14)
at sun.applet.AppletPanel.run(AppletPanel.java:424)
at java.lang.Thread.run(Thread.java:662)


Chodzi mi aby w klasie Testgraf stworzyć obiekt typu Grafika i podczas inicjalizacji pomalować obiekty typu Image.
?