Nord-Süd-Richtung
Erfahrenes Mitglied
Hi
ich kann das folgende Applet ohne Probleme mit Eclipse starten. Nur wenn ich es im FireFox ausführe, kriege ich folgende Fehler:
Hier das Applet
ich kann das folgende Applet ohne Probleme mit Eclipse starten. Nur wenn ich es im FireFox ausführe, kriege ich folgende Fehler:
java.lang.reflect.InvocationTargetException
at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.runOnEDT(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)
Caused by: java.security.AccessControlException: access denied (java.io.FilePermission background.png read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at sun.awt.SunToolkit.getImageFromHash(Unknown Source)
at sun.awt.SunToolkit.getImage(Unknown Source)
at gsg9.<init>(gsg9.java:19)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Ausnahme: java.lang.reflect.InvocationTargetException
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
Hier das Applet
Java:
import java.applet.Applet;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.Image;
import java.awt.Graphics;
import java.awt.Toolkit;
public class gsg9 extends Applet implements ActionListener,KeyListener,Runnable{
static final long serialVersionUID = 1;
Image imgBackground = Toolkit.getDefaultToolkit().getImage("background.png");
Image imgPlayer = Toolkit.getDefaultToolkit().getImage("player.png");
int width = 400;
int height = 400;
int mapPosX = 0;
int mapPosY = 0;
int startPosX = 20;
int startPosY = 20;
int playerPosX = startPosX;
int playerPosY = startPosY;
String playerName = "Player1";
/* controls */
final char cmdMoveForward = KeyEvent.VK_W;
final char cmdMoveBackwards = KeyEvent.VK_S;
final char cmdMoveRight = KeyEvent.VK_D;
final char cmdMoveLeft = KeyEvent.VK_A;
boolean pressedCmdMoveForward = false;
boolean pressedCmdMoveBackwards = false;
boolean pressedCmdMoveRight = false;
boolean pressedCmdMoveLeft = false;
Player player = new Player(playerName,startPosX,startPosY);
Thread moveThread = null;
public void init(){
/* layout */
this.setLayout(null);
this.setSize(width,height);
this.addKeyListener(this);
moveThread = new Thread(this);
moveThread.start();
}
public void paint(Graphics g){
/* constant */
g.drawImage(imgBackground,mapPosX,mapPosY,this);
/* dynamic */
g.drawImage(imgPlayer,player.getPosX(),player.getPosY(),this);
}
public void actionPerformed(ActionEvent evt){
}
public void keyPressed(KeyEvent event){
int key = event.getKeyCode();
if( key == cmdMoveForward)
pressedCmdMoveForward = true;
if( key == cmdMoveBackwards)
pressedCmdMoveBackwards = true;
if( key == cmdMoveLeft)
pressedCmdMoveLeft = true;
if( key == cmdMoveRight)
pressedCmdMoveRight = true;
}
public void keyReleased(KeyEvent event){
int key = event.getKeyCode();
if( key == cmdMoveForward)
pressedCmdMoveForward = false;
if( key == cmdMoveBackwards)
pressedCmdMoveBackwards = false;
if( key == cmdMoveLeft)
pressedCmdMoveLeft = false;
if( key == cmdMoveRight)
pressedCmdMoveRight = false;
}
public void keyTyped(KeyEvent event){
}
public void movePlayer(){
int posX = player.getPosX();
int posY = player.getPosY();
if( pressedCmdMoveForward ){
if( posY > 0 )
player.setPosY(posY-2);
}
if( pressedCmdMoveBackwards ){
if( posY < 400 )
player.setPosY(posY+2);
}
if( pressedCmdMoveLeft ){
if( posX > 0 )
player.setPosX(posX-2);
}
if( pressedCmdMoveRight ){
if( posX < 400 )
player.setPosX(posX+2);
}
repaint();
}
public void run(){
Thread currentThread = Thread.currentThread();
while( moveThread == currentThread){
try{
Thread.sleep(50);
}
catch(InterruptedException e){
}
movePlayer();
}
}
}