Hallo Leute! 
Ich versuche mich gerade in Java und beobachte etwas komisches. Ich habe in meinem Java-Applet einen Thread erstellt und wenn ich das Applet lokal auf meiner Festplatte mit einem Browser ausführe, funktioniert es problemlos.
Wenn ich das Applet aber auf meinen Webserver hochlade und es über das Internet mit meinem Browser öffne, bekomme ich die folgende Fehlermeldung:
Wenn ich den Thread rausnehme, funktioniert es auch über das Internet. Komisch, oder? Habt ihr eine Ahnung, woran das liegen kann?
Das Applet sieht wie folgt aus:
Ich versuche mich gerade in Java und beobachte etwas komisches. Ich habe in meinem Java-Applet einen Thread erstellt und wenn ich das Applet lokal auf meiner Festplatte mit einem Browser ausführe, funktioniert es problemlos.
Wenn ich das Applet aber auf meinen Webserver hochlade und es über das Internet mit meinem Browser öffne, bekomme ich die folgende Fehlermeldung:
java.lang.NullPointerException
at sun.plugin2.applet.Plugin2Manager.findAppletJDKLevel(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ausnahme: java.lang.NullPointerException
Wenn ich den Thread rausnehme, funktioniert es auch über das Internet. Komisch, oder? Habt ihr eine Ahnung, woran das liegen kann?
Das Applet sieht wie folgt aus:
Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Test_001 extends Applet implements MouseListener, MouseMotionListener {
int width, height;
boolean isButtonPressed = false;
Image img;
Graphics buffergrafikausgabe;
Image buffergrafik;
long startTime;
public void init()
{
width = getSize().width;
height = getSize().height;
setBackground( Color.blue );
addMouseListener( this );
addMouseMotionListener( this );
buffergrafik=createImage(width,height);
buffergrafikausgabe=buffergrafik.getGraphics();
startTime = System.currentTimeMillis();
Thread repeatThread = new Thread() {
public void run()
{
while(true)
{
try
{
Thread.sleep(404);
}
catch(InterruptedException ex)
{
// nix machen
}
repaint(); //Hier wird die Paintmethode aufgerufen, die die Zeit neu ausgibt.
}
}
};
repeatThread.start(); // Dieser Thread uebernimmt die Erneuerung
}
public void mouseEntered( MouseEvent e ) { }
public void mouseExited( MouseEvent e ) { }
public void mouseClicked( MouseEvent e ) { }
public void mousePressed( MouseEvent e ) { }
public void mouseReleased( MouseEvent e ) { }
public void mouseMoved( MouseEvent e ) { }
public void mouseDragged( MouseEvent e ) { }
public void paint( Graphics g )
{
long timeNow = System.currentTimeMillis();
long diff = timeNow-startTime;
if ( isButtonPressed ) { }
else
{ }
buffergrafikausgabe.setColor (Color.blue);
buffergrafikausgabe.fillRect (0,0,100,200);
buffergrafikausgabe.setColor (Color.black);
buffergrafikausgabe.drawString ("ms : "+diff, 3,75);
g.drawImage(buffergrafik,0,0,this);
}
public void update (Graphics g)
{paint(g);}
}
Zuletzt bearbeitet: