Bilder laden, je nachdem, was für ein int-Wert

§Alptraum§

Erfahrenes Mitglied
Mit folgendem Code:
Code:
public void paint(Graphics g) 
{
g.drawLine(25,25,75,75);
Image img;
img = getToolkit().getImage("c:\\trigo.gif");
g.drawImage(img,40,40,this);
}
wird ja eine Linie gezeichnet und ein Bild geladen, jedoch kann ich es nicht in
Code:
    public void serialEvent(SerialPortEvent event) 
    {
    }
verwenden.

Wie könnte man es bewerkstelligen, dass ich es doch anzeigen kann?

Wiegesagt bin nur strukturiertes programmieren gewöhnt, nicht objektorientiertes programmieren.
Das sollte eigendlich die letzte Frage sein :D
 
Zuletzt bearbeitet:
Hallo §Alptraum§,
ich bin nicht sicher, ob ich deine Frage richtig verstanden habe. Aber es ist wohl besser, das Bild nicht in der paint Methode zu laden, sondern dort, wo der von dir erwähnte "int-Wert" verfügbar ist. Danach kann man das Bild der GUI Klasse übergeben und repaint() für sie aufrufen.
Gruß,
André
 
Hallo,

um mal auf der Aussage von André aufzubauen. In der Paint-Methode sollte man kein Bild laden, so dauert das Zeichnen der Komponente viel zu lange. Dass das Bild dort gezeichnet wird, ist schon korrekt.
Wie auch André schon geraten hat, solltest du das Bild an der Stelle laden, an der du den Integer-Wert bekommst. Wenn es sich dabei um ein Event handelt, solltest du die SwingUtilities nutzen. Wenn das Bild dann geladen ist, musst du es noch der Klasse setzen, die es zeichnen soll. Wenn es die gleiche Klasse ist, solltest du eine Instanzvariable nutzen und anschließend repaint aufrufen.

Gruß

Sascha
 
Zurück