Hallo!
Ich möchte gerne (vorerst einmal) ein Applet, das mir ein Gitternetz zeichnet und noch zweimal das gleiche Bild aus einer Datei (vorerst mal an einen beliebigen Ort). Nun hab ich aber zwei Probleme:
- Bild zwei wird gar nicht erst angezeigt
- Wenn ich ein anderes Fenster über das Applet schiebe und wieder zurück, bleibt das Gitternetz wie es ist, das Bild wird aber wie mit einem Gummi "ausradiert"
Ich hoffe mir kann jemand helfen, nehme mal an dass ich irgendeinen grundlegenden Javafehler gemacht habe.
mfg smf68
edit: Ich poste das ins AWT-Forum, da ich vermute, dass der Fehler auf meine falsche Anwendung des AWT zurückzuführen ist. Sollte dem nicht so sein, bitte ich den zuständigen Moderator, den Thread ins Applet-Forum zu verschieben
Ich möchte gerne (vorerst einmal) ein Applet, das mir ein Gitternetz zeichnet und noch zweimal das gleiche Bild aus einer Datei (vorerst mal an einen beliebigen Ort). Nun hab ich aber zwei Probleme:
- Bild zwei wird gar nicht erst angezeigt
- Wenn ich ein anderes Fenster über das Applet schiebe und wieder zurück, bleibt das Gitternetz wie es ist, das Bild wird aber wie mit einem Gummi "ausradiert"
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.util.*;
public class test extends Applet
{
Dimension CanvasSize = new Dimension(500,400);
int anzahlbilder = 1;
Image[] bilder = new Image[anzahlbilder];
String[] bilderfiles = new String[anzahlbilder];
MediaTracker tracker = new MediaTracker(this);
// Klasse für das Laden der Bilder
class MyImageLoader
{
MyImageLoader()
{
bilderfiles[0] = "gras.gif";
try
{
for(int i=0;i<bilderfiles.length;i++)
{
bilder[i] = getImage(new URL(getCodeBase() + bilderfiles[i]));
tracker.addImage(bilder[i], 0);
}
}
catch(MalformedURLException e)
{
System.out.println("MalformedURLException");
return;
}
try
{
tracker.waitForAll();
}
catch(InterruptedException e)
{
System.out.println("InterruptedException");
return;
}
}
}
class ZeichenCanvas extends Canvas
{
ZeichenCanvas()
{
}
public void paint(Graphics g)
{
int actx = 0;
int acty = 0;
while(actx < (int)CanvasSize.getWidth())
{
g.drawLine(actx,0,actx,(int)CanvasSize.getHeight());
actx += 20;
}
while(acty < (int)CanvasSize.getHeight())
{
g.drawLine(0,acty,(int)CanvasSize.getWidth(),acty);
acty += 20;
}
g.drawImage(bilder[0], 20, 20, null); // Scheint zu gehen
g.drawImage(bilder[0], 50, 50, null); // Scheint nicht zu funktionieren
}
}
ZeichenCanvas anzeige;
public void init()
{
MyImageLoader ImageLoader = new MyImageLoader();
anzeige = new ZeichenCanvas();
add(anzeige);
}
}
Ich hoffe mir kann jemand helfen, nehme mal an dass ich irgendeinen grundlegenden Javafehler gemacht habe.
mfg smf68
edit: Ich poste das ins AWT-Forum, da ich vermute, dass der Fehler auf meine falsche Anwendung des AWT zurückzuführen ist. Sollte dem nicht so sein, bitte ich den zuständigen Moderator, den Thread ins Applet-Forum zu verschieben