Animation auf einem Hintergrundbild

Status
Nicht offen für weitere Antworten.

Marcel_Handball

Bekanntes Mitglied
Hallo zusammen,
ich sitze gerade an einem Projekt und möchte eine Animation auf einem Hintergrundbild laufen lassen.

Theoretisch kein Problem, aber wenn ich es folgendermaßen mache, flackert das bild die ganze zeit, da es ja immer wieder neu gezeichnet wird. (steht ja mit in der paint methode, die ja ununterbrochen aufgerufen wird).

Code:
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


public class gradnetz extends Applet implements Runnable, ActionListener
{   Thread myThread;
    Image bild;
    int y=5;

    public void init()
    {  
        bild = getImage( getDocumentBase(), "hinter.jpg" );
    }

    
    
    public void start(){
        if(myThread==null){myThread=new Thread(this); 
        myThread.start();}
    }
    
    
    public void run(){
        Thread thisThread = Thread.currentThread();
        
        while(myThread == thisThread){
            y++;
        
            repaint();
            try{myThread.sleep(20);}catch(InterruptedException e){}
            if(y==295){stop(); y=5; lauf=false; halt.setLabel("Weiter 1");}
        }
    }
    
    
    public void stop(){
        myThread = null;
    }
    
        
    public void paint(Graphics g){   
            g.drawImage( bild, 0, 0, this ); 
            g.setColor(Color.red);
            g.drawLine(5,y,200,y);               
   }
          
}

Wie kann ich also auf einem Bild zeichnen ohne, dass dieses flackert (kann man ein Hintergrundbild auch außerhalb der paint methode erzeugen? Es soll auf jeden fall nur einmal gezeichnet werden?
Wie kann ich das umsetzen??

Schon im Voraus DANKE für eure Antwort.
Marcel
 

VdA

Bekanntes Mitglied
doctus hat gesagt.:
einfacher trick : Doppelpufferung.

Um das Hintergrund bild zu zeichnen, brauchst du ein Graphics-Object. daher muss das in die paint()-methode.

lg doctus

Warum :?: du kannst doch mit meinfenster.getGraphics() dir selbst ein Graphics objekt erzeugen
 

Wildcard

Top Contributor
VdA hat gesagt.:
Warum :?: du kannst doch mit meinfenster.getGraphics() dir selbst ein Graphics objekt erzeugen
Kann man, ist aber in 99,9% aller Fälle völlig verkehrt. Warum? Ich erklär das jetzt nicht zum hundertsten mal :?
 

doctus

Bekanntes Mitglied
@VdA:

was hast du eigendlich mit deinem getGraphics()?^^

ich hab gerade schon nen thread gesehen, wo wildcard dir gesagt hat, das das nicht die optimale lösung ist.
 

VdA

Bekanntes Mitglied
aber warum ist es so schlecht?
Hab in nem malprogramm das angewendet damit wenn der User
mit dem Stift rübermalt sofort zu sehen ist was er gezeichnet hat
und nicht erst nach dem nächsten repaint in x sekunden.
 
R

Roar

Gast
muss ja nen tolles malprogramm sein, was meine kunst nach dem nächsten resizen des fensters wieder verwirft :roll:

> und nicht erst nach dem nächsten repaint in x sekunden.
repaint(); ?
 

VdA

Bekanntes Mitglied
ich hole mir mit BufferedImage#getGraphics() das Graphics objekt von dem Papier wo man drauf zeichnen kann
und zeichne das dann auf das Fenster mit
Code:
this.getGraphics().drawImage(meinbild, 0, 0);
obwohl mir fällt ein das ich das Programm vllt noch Performanter machen könnte wenn ich das in paintComponent setze
und repaint() immer in mouseDragged() aufrufe mg
aber ersma is mein PC im Arsch und bis der wieder heil is dauert das n bischen :x :(

PS: hat mittlerweile was alle funktionen wie in MS Paint und noch ein paar mehr die ich in MS Paint vermisst hab
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Animation in Canvas (Rückstände) Tools - Maven, Gradle, Ant & mehr 5
R Gif Animation / Problem Tools - Maven, Gradle, Ant & mehr 4
J Applet Frage (Animation) Double Buffer? Tools - Maven, Gradle, Ant & mehr 27
M javafx wird in einem alten programm nicht bei maven gefunden Tools - Maven, Gradle, Ant & mehr 15
W Buendeln von jar und ear in einem Projekt Tools - Maven, Gradle, Ant & mehr 3
JWK Kann ich mit einem Scanner eine Datei mehrmals lesen? Tools - Maven, Gradle, Ant & mehr 3
pkm Wie log4j in einem mvn-basierten Projekt einbinden? Tools - Maven, Gradle, Ant & mehr 2
4 Hilfe bei einem BB Code formatierer Tools - Maven, Gradle, Ant & mehr 4
S .jars in einem Ornder automatisch laden lassen Tools - Maven, Gradle, Ant & mehr 2
musiKk Maven Verwendung von commons-configuration in einem OSGi-Bundle Tools - Maven, Gradle, Ant & mehr 6
M Repository und Integrationsumgebung auf einem Server Tools - Maven, Gradle, Ant & mehr 5
E Webstart Laden von Tiff-Bildern als BufferedImage und TFW aus einem JAR Tools - Maven, Gradle, Ant & mehr 3
S Problem bei Nutzung einer eigenen EJB in einem Servlet Tools - Maven, Gradle, Ant & mehr 2
E Verzögerung beim Refresh (F5) mit einem Applet verursachen Tools - Maven, Gradle, Ant & mehr 16
S Fehler in einem Upload - Applet (nicht gelöst!!) Tools - Maven, Gradle, Ant & mehr 2
G Vigenere Verschlüsselung mit einem Applet Tools - Maven, Gradle, Ant & mehr 1
A Mit einem Applet eine txt-Datei einlesen und ausgeben. Tools - Maven, Gradle, Ant & mehr 6
S aus einem JApplet ein Image in separatem JFrame anzeigen Tools - Maven, Gradle, Ant & mehr 10
H HTML Seiten in einem Applet anzeigen Tools - Maven, Gradle, Ant & mehr 2
J In einem Bean zugriff auf ein SessionBean? Tools - Maven, Gradle, Ant & mehr 6
H Ärger mit einem Chat Tools - Maven, Gradle, Ant & mehr 6
G Problem mit dem schreiben von Datein auf einem Server Tools - Maven, Gradle, Ant & mehr 11
D Problem bei der Ausgabe in einem Applet Tools - Maven, Gradle, Ant & mehr 3
H Open Dialog in einem Applet Tools - Maven, Gradle, Ant & mehr 2
D Größe eines jpeg's in einem Java-Applet ändern ? Tools - Maven, Gradle, Ant & mehr 7
J Email an mehrere Empfänger aus einem Applet abschicken Tools - Maven, Gradle, Ant & mehr 4
J Memberbereich in einem Java Applet ? Tools - Maven, Gradle, Ant & mehr 5
S mouseEntered mit einem Bild im Applet Tools - Maven, Gradle, Ant & mehr 17
G Unerwünschte Applet-Fußzeile bei einem JPopupMenu Tools - Maven, Gradle, Ant & mehr 6
thE_29 Vom Applet aus einem HTML Button Focus geben Tools - Maven, Gradle, Ant & mehr 4
M Eine Datei lesen mit einem Applet (gleicher Server) Tools - Maven, Gradle, Ant & mehr 2
F Ein Bild in einem Applet anzeigen? Tools - Maven, Gradle, Ant & mehr 2
M Textausgabe in einem Applet Tools - Maven, Gradle, Ant & mehr 7
G Bild in einem TextField oder TextArea? Tools - Maven, Gradle, Ant & mehr 3
D Frame oder JFrame von einem Applet aus starten Tools - Maven, Gradle, Ant & mehr 10
B Farbe eines Pixels in einem Applet Tools - Maven, Gradle, Ant & mehr 4
M ein aus einem JApplet gestartetes JFrame schliessen Tools - Maven, Gradle, Ant & mehr 6
K Bild (jpg) in einem JApplet Tools - Maven, Gradle, Ant & mehr 2
G Kann Pfad zu einem Image auf dem Webserver nicht angeben Tools - Maven, Gradle, Ant & mehr 2
E Seite per Applet in einem bestimmten Frame öffnen Tools - Maven, Gradle, Ant & mehr 2
S Aus einem Applet grafische Fenster bzw. Dialoge öffnen Tools - Maven, Gradle, Ant & mehr 21
D Applet aus einem Agenten heraus aufrufen Tools - Maven, Gradle, Ant & mehr 2
D problem beim auslesen von text aus einem textfeld... Tools - Maven, Gradle, Ant & mehr 15
D Anzeige eines Bildes in einem Applet Tools - Maven, Gradle, Ant & mehr 2
S Probleme mit einem Applet Tools - Maven, Gradle, Ant & mehr 2
M Textdatei von einem Server, innerhalb eines Applets, lesen Tools - Maven, Gradle, Ant & mehr 4
L Hintergrundbild für Applet Tools - Maven, Gradle, Ant & mehr 3

Ähnliche Java Themen

Neue Themen


Oben