Hallo,
ich würd gern von einem Applet aus eine Textdatei mit einem Tokenizer auf bestimmte Zeichen prüfen
sie in einem graphics kontext (des Applets) durch Rechtecke repräsentieren und diesen auf den Bildschirm
zeichnen Ich hab schon ein kleines programm mit einem inputstream geschrieben aber es kommt immer
die fehlermeldung applet notinited oder ladevorgang läuft... die textdatei liegt im selben verzeichnis
das graphics objekt ist mit dem Kontext des Applets vertraut gemacht worden, ich weiß nicht was falsch ist
im forum applets hat mir nur der beni geantwortet aber ich bekomm noch denselben fehler bitte schreibt zurück
denn ich brauch umbedingt dynamische maps für mein pacman spiel
Ich hab mal gelesen man kann von Applets gar nicht auf Textdateien zugreifen, da das die File Permissions nicht erlauben, aber die sind doch richtig gesetzt
lg Fridolin
achja das ist der code
HTML
ich würd gern von einem Applet aus eine Textdatei mit einem Tokenizer auf bestimmte Zeichen prüfen
sie in einem graphics kontext (des Applets) durch Rechtecke repräsentieren und diesen auf den Bildschirm
zeichnen Ich hab schon ein kleines programm mit einem inputstream geschrieben aber es kommt immer
die fehlermeldung applet notinited oder ladevorgang läuft... die textdatei liegt im selben verzeichnis
das graphics objekt ist mit dem Kontext des Applets vertraut gemacht worden, ich weiß nicht was falsch ist
im forum applets hat mir nur der beni geantwortet aber ich bekomm noch denselben fehler bitte schreibt zurück
denn ich brauch umbedingt dynamische maps für mein pacman spiel
Ich hab mal gelesen man kann von Applets gar nicht auf Textdateien zugreifen, da das die File Permissions nicht erlauben, aber die sind doch richtig gesetzt
lg Fridolin
achja das ist der code
Code:
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
public class VersuchPacman extends Applet implements Runnable
{
private URL url;
private Graphics dbg;
private Thread update = null;
InputStream stream;
StreamTokenizer tokenizer;
public void init()
{
try
{
url = new URL(getCodeBase(), "Kopie von Mappe.txt");
}
catch (final MalformedURLException e)
{
}
try
{
stream = url.openStream();
tokenizer = new StreamTokenizer(stream);
tokenizer.parseNumbers();
tokenizer.wordChars('c', 'c');
tokenizer.wordChars('w', 'w');
tokenizer.wordChars('n', 'n');
tokenizer.wordChars('s', 's');
tokenizer.wordChars('e', 'e');
//tokenizer.wordChars('0', ' ');
tokenizer.ordinaryChars(0, ' ');
tokenizer.whitespaceChars(' ',' ');
tokenizer.eolIsSignificant(true);
tokenizer.slashStarComments(true);
tokenizer.slashSlashComments(true);
String board[][] = new String[18][42];
String message = "";
int boardint[][] = new int[18][42];
int count1 = 0;
int count2 = 0;
int boardx = 0;
int boardy = 0;
int blocksizex = 7;
int blocksizey = 16;
int token;
while ((token = tokenizer.nextToken()) != StreamTokenizer.TT_EOF)
{
switch (token)
{
case StreamTokenizer.TT_WORD:
message = "Word: " + tokenizer.sval;
board[count1][count2] = tokenizer.sval;
count2++;
break;
case StreamTokenizer.TT_EOL:
count1++;
break;
case StreamTokenizer.TT_EOF:
count1 = 0;
count2 = 0;
break;
//default:
//char ch = (char)tokenizer.ttype;
//break;
}
}
for(count1 = 0; count1 <= 16; count1++)
{
for(count2 = 0; count2 <= 40; count2++)
{
boardint[count1][count2] = Integer.parseInt(board[count1][count2]);
}
}
for(count1 = 0; count1 <= 16; count1++)
{
if(count1 != 0)
{
boardy+=blocksizey;
boardx = 0;
}
for(count2 = 0; count2 <= 40; count2++)
{
switch (boardint[count1][count2])
{
case 'n':
if(dbg == null)
{
dbg = getGraphics();
}
dbg.setColor(Color.blue);
break;
default:
if(dbg == null)
{
dbg = getGraphics();
}
dbg.setColor(Color.black);
break;
}
dbg.drawRect(boardx,boardy,blocksizex,blocksizey);
dbg.fillRect(boardx,boardy,blocksizex,blocksizey);
boardx+=blocksizex;
}
}
}
catch (final IOException e) { }
}
public void start ()
{
if(update == null)
{
update = new Thread(this, "update");
update.start();
}
//Thread th = new Thread (this);
//th.start ();
}
public void run ()
{
Thread dieserThread = Thread.currentThread();
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while(update == dieserThread)
{
repaint();
try
{
Thread.sleep(10000);
}
catch(InterruptedException event)
{
//System.err.println(event);
}
}
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
public void stop ()
{
update = null;
}
public void destroy ()
{
dbg.dispose();
}
public void paint (Graphics dbg)
{
paint(dbg);
}
public void update (Graphics dbg)
{
paint(dbg);
}
}
HTML
Code:
<HTML>
<HEAD>
<TITLE> VersuchPacman </TITLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#DDEECC" LINK="#FF8899" VLINK="#9988FF" ALINK="#FFFFFF">
<LEFT>
<APPLET CODE="VersuchPacman.class" WIDTH = 294 HEIGHT = 288 VSPACE=100 HSPACE=100>
<PARAM NAME=font VALUE="TimesRoman">
<PARAM NAME=size VALUE="36">
</APPLET>
Click on applet to allow for keyboard input
</HTML>