Repaint() funkioniert nicht
Thorsten F.
- java
Hi Leute,
habe da ein Problem mit dem repaint() Befehl in Java.
Und zwar:
Ich habe eine paint-Methode:
public void paint()
{
super.paint(g);
ListIterator it = images.listIterator(0);
while (it.hasNext())
{
Game_Image gi = (Game_Image)it.next();
g.drawImage(gi.image,gi.x,gi.y,this);
}
}
Da ich verschiedene Bilder habe und zwischendurch neue Bilder dem Programm hizufügen möchte, habe ich mir zwei Funktion geschrieben, damit ich nicht jedes einzelne Bild dem Mediatracker hinzufügen muss.
Ich muss für ein neues Bild einfach nur in einem best. Code Ausschnitt den Path und den Pathname des Bildes mitgeben.
Das sieht dann so aus:
public static void loadImage(String filename, String name, int id)
{
Game_Image gi = new Game_Image();
gi.filename = filename;
gi.name = name + String.valueOf(id);
gi.load();
images.add(gi);
}
public void drawImage(int x, int y, String name, int id)
{
image_iterator++;
ListIterator it = images.listIterator(0);
while (it.hasNext())
{
Game_Image gi = (Game_Image)it.next();
if (gi.name.equals(name + String.valueOf(id)))
{
gi.x = x;
gi.y = y;
mt.addImage(gi.image,0);
try
{
//Warten, bis das Image vollständig geladen ist,
mt.waitForAll();
}
catch (InterruptedException e)
{
//nothing
}
}
}
}
Wenn ich nun aber das Programm starte sehe ich zunächst alle Bilder.
Minimiere ich das Fenster und anschließend wieder maximiere dann sind alle Bilder weg.
Weiß jemand Rat, wo ich den repaint() oder sonst was schreiben muss?
Hallo Thorsten,
public void paint()
{
super.paint(g);
Wo kommt hier die Variable g her? Hast Du das Argument einfach nur vergessen oder machst Du hier irgend was anderes?
ListIterator it = images.listIterator(0);
while (it.hasNext())
{
Game_Image gi = (Game_Image)it.next();
g.drawImage(gi.image,gi.x,gi.y,this);
}
}
Welche Klasse hast Du denn erweitert und kannst Du das gesammte Programm irgendwo hochladen, damit man da evt. mal rumprobieren kann?
Grüße
Daniel