Animation bleibt leer (weiß)

Status
Nicht offen für weitere Antworten.
U

Unbekannter Gast

Gast
Hallo,

habe 3 Klasse (Animator extends Theards, AniApplet extends Applet, AniCanvas extends Canvas implements Animation) und 1 Interface(Animation).

Im Interface Animation gibt es die Methode animieren(), die sieht in der AniCanvas Klasse ca. so aus:

Code:
public void animieren()
{


//variablen x,y ändern, neu berechnen

x = x + neuerWertx;
y = y + neuerWerty;
repaint();

}

Die paint-Methode hat nur die zu zeichnende Fläche mit Farbsetzung (setColor).

....

In der AniApplet Klasse wird beim init() die AniCanvas mit new initialisiert und mit add hinzugefügt.
Bei start() wird die Klasse Animator initialisiert (mit dem Intervall und der AniCanvas) und die Methode run() aufgerufen.
stop() enthält lediglich die abbruch Routine.

Hier die run() Methode, das aniObjekt wird im Konstuktur von AniApplet übergeben.
Code:
Animation aniObjekt;

...
...
...

public void run()
{
	while (lauf == true)
	{
		try
		{				
			sleep(intervall);
			aniObjekt.animieren();
				
		}
		catch (InterruptedException e)
		{
				lauf = false;
		}
	}
}


Allerdings scheint er nicht das Bild neu zu malen. Da ich recht neu bin in Java (und OOP) weiß ich nicht genau wo da die Fehler sind.

Auf eine Antwort würde mich ich freuen.

Bye
 

Marco13

Top Contributor
Ohne mehr Code oder genauere Beschreibung kann man da kaum was sagen. Mach notfalls ein paar Debug-Ausgaben rein:
Code:
public void run()
{
   System.out.println("run wird ausgeführt, lauf ist "+lauf); 
   while (lauf == true)
   {
      System.out.println("Laufe..."); 
      try ...

}

public void animieren()
{
    System.out.println("Animiere von "+x+" "+y+"...."); 
    x = x + neuerWertx;
    y = y + neuerWerty;
    System.out.println("nach "+x+" "+y); 
    repaint(); 
}

public void paintComponent(Graphics g)
{
    System.out.println("Male bei "+x+" "+y+"....");
    g.drawRect(x,y,...);
}
 
U

Unbekannter Gast

Gast
Hallo,

also die werte Änderung nimmt er vor da er ja auch beim println() etwas ausspuckt.
Auf die Idee in paint selbst ein println() reinzusetzen bin ich noch nicht gekommen.
Sprich paint(Graphics g) wird ausgeführt, also kommt er bei repaint() auch an.

Allerdings ist mir aufgefallen das es ein Bild anzeigt, wenn ich den Animator in start() rauslasse.
hmm.. eigentlich müsste ja alles funktionieren es wird ja alles ausgeführt.




AniApplet:
Code:
	public void init()
	{
		
		kreisanimation = new AniCanvas(200,200,50,50,1,1);
		add(kreisanimation);		
	}
	
	public void start()
	{
		kreisanimator = new Animator(kreisanimation,90); //90 ist Intervall
		kreisanimator.run();		
	}

----

So habe ein wenig rumprobiert, wenn i=5 ist wird das bild angezeigt. Da animieren ja ausgeführt wird und er in paint(Graphics g) hineingeht ist entweder in paint ein Fehler oder es fehlt irgendeine Reinigungsaktion.

run() und Konstruktor in Animator:

Code:
	public Animator (Animation ani0b, long intv)
	{
		
		aniObjekt = ani0b;
		intervall = intv;
		lauf = true;
	}

	public void run()
	{
		
		int i=0;
		while (lauf == true)
		{
			try
			{				
				i = i + 1;
				sleep(intervall);
				aniObjekt.animieren();
				System.out.println("i:" + i);
				if (i == 5)
				{
					lauf = false;
				}
				
			}
			catch (InterruptedException e)
			{				
				lauf = false;
			}
		}
	}
 

Marco13

Top Contributor
Äääähhh... die run-Methode darf man nicht per Hand aufrufen :meld:

Code:
class Bla implements Runnable
{
    public void run() { ... }
}

Thread t = new Thread(new Bla());
t.start(); // <- DAS führt (automatisch) die run-Methode (in einem eigenen Thread) aus!
 
U

Unbekannter Gast

Gast
Achso.. hmm.. und warum, wegen der förmlichen Höfflichkeit?

Naja jedenfalls lag es nicht daran, da ich noch setVisible(true) gesetzt habe und es dannach so ging wie gedacht. Peinlich aber wahr :oops:
 

Murray

Top Contributor
Unbekannter Gast hat gesagt.:
Achso.. hmm.. und warum, wegen der förmlichen Höfflichkeit?
Das macht einfach den Unterschied zwischen synchroner und asynchroner Verarbeitung aus: wenn Du die run-Methode direkt aufrust, dann wird sie im aufrufenden Thread ausgeführt; die run-Methode kehrt natürlich erst dann zurück, wenn sie komplett verarbeitet worden ist.
Im Gegensatz dazu startet Thread#start eben wirklich eine asynchron ausgeführten Thread; die start-Methode kehrt zurück, sobald der Thread gestartet wurde; die run-Methode kann dann aber durchaus noch weiterlaufen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Animation/links-rechts Java Basics - Anfänger-Themen 9
G Animation Timer Nano Time Java Basics - Anfänger-Themen 2
J Animation eines Körpers auf der schiefen Ebene Java Basics - Anfänger-Themen 11
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
D Animation JPanel Java Basics - Anfänger-Themen 1
WetWer Animation JLabel Java Basics - Anfänger-Themen 2
A Animation einer Zahnradpumpe Java Basics - Anfänger-Themen 6
B Animation mit Thread(s) Java Basics - Anfänger-Themen 23
K Möglichkeiten um eine einfache Animation darzustellen Java Basics - Anfänger-Themen 7
C Animation nur einmal durchführen Java Basics - Anfänger-Themen 3
N Bilderarray als animation ablaufen lassen?? Java Basics - Anfänger-Themen 6
G Threads SuM Class Animation Java Basics - Anfänger-Themen 13
J .gif Animation Java Basics - Anfänger-Themen 4
J Animation Java Basics - Anfänger-Themen 5
M Animation in einem Multiplayerspiel Java Basics - Anfänger-Themen 3
S Animation nach bestimmter Zeit ausführen Java Basics - Anfänger-Themen 3
T Animation Java Basics - Anfänger-Themen 2
M Animation von Kreisen Java Basics - Anfänger-Themen 15
U Y-Animation Java Basics - Anfänger-Themen 3
K Animation: Ball fällt herunter Java Basics - Anfänger-Themen 2
G Zufalls Animation Java Basics - Anfänger-Themen 9
Luk10 einfach animation Java Basics - Anfänger-Themen 2
H Animation malen! Java Basics - Anfänger-Themen 2
S JTable mit Animation??? Java Basics - Anfänger-Themen 7
B Flash Animation SWF in Java absielen Java Basics - Anfänger-Themen 18
R Probleme mit Animation und der erstellung einer jar Datei. Java Basics - Anfänger-Themen 11
T Animation übermalt panels Java Basics - Anfänger-Themen 6
M Simple Animation funktioniert nicht (JFrame, Canvas, Thread) Java Basics - Anfänger-Themen 6
S Desktop Animation Java Basics - Anfänger-Themen 15
T Abspeichern einer Animation in *.bmp Java Basics - Anfänger-Themen 12
K animation in applet, thread problem (?) Java Basics - Anfänger-Themen 3
K Animation warten lassen Java Basics - Anfänger-Themen 9
F Animation Java Basics - Anfänger-Themen 3
J Animation Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
N Array, lineare Suche, binäre Suche, Programm bleibt unerwartet stehen... Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
O While Schleife bleibt hängen Java Basics - Anfänger-Themen 7
C Problem bei BlueJ - Pfeil bleibt nicht in der Dartscheibe stecken Java Basics - Anfänger-Themen 4
J Ball->Wand Kollision - Ball bleibt an Decke und Boden hängen Java Basics - Anfänger-Themen 2
B getInputStream() - auslesen bleibt leer Java Basics - Anfänger-Themen 2
S Chatfenster bleibt grau! Java Basics - Anfänger-Themen 6
V Frame bleibt grau Java Basics - Anfänger-Themen 5
P While schleife: Konsole bleibt leer :D Java Basics - Anfänger-Themen 5
J Frame bleibt schwarz beim Laden Java Basics - Anfänger-Themen 11
P Gui bleibt hängen beim erzeugen von Objekten Java Basics - Anfänger-Themen 5
T Countdown, der in der selben Zeile bleibt Java Basics - Anfänger-Themen 6
M Programm bleibt beim Ausführen von Bash-Scripten hängen Java Basics - Anfänger-Themen 5
G Table bleibt leer :( Java Basics - Anfänger-Themen 12
J Die Sprache der Informatiker sie bleibt mir ein Rätsel. Java Basics - Anfänger-Themen 8
L Beim ausführen bleibt der Button gedrückt . Java Basics - Anfänger-Themen 35
S Array bleibt leer, wo liegt mein Fehler? Verzeichnisinhalt s Java Basics - Anfänger-Themen 8
A Fenster bleibt leer und schließt sich nicht Java Basics - Anfänger-Themen 26
M JTable Focus bleibt auf Zelle Java Basics - Anfänger-Themen 4
G Mein Array bleibt immer leer????????? Java Basics - Anfänger-Themen 8
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
L Enumeration Wetter - leer initialiseren? Java Basics - Anfänger-Themen 5
D Warum nicht true wenn Array leer ist? Java Basics - Anfänger-Themen 8
J SVN Repository Prüfung ob leer ist Java Basics - Anfänger-Themen 23
Aruetiise Variablen Array ist leer? Java Basics - Anfänger-Themen 6
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
MiMa Leere Datei ist nicht Leer ?? Java Basics - Anfänger-Themen 6
F Erste Schritte Unterschied: Array "leer" / "null" Java Basics - Anfänger-Themen 3
M Ausgabe eines txt Dokuments, Dokument leer Java Basics - Anfänger-Themen 1
M Felder leer - überprüfen? Java Basics - Anfänger-Themen 2
D In Arrayfeld schreiben wenn leer Java Basics - Anfänger-Themen 8
K Methoden ResultSet als Methodenübergabewert kommt leer an Java Basics - Anfänger-Themen 0
S TextFieldFilter - Wenn Textfeld leer dann setze 0 Java Basics - Anfänger-Themen 9
W Erste Schritte Array[0] ist leer ? Java Basics - Anfänger-Themen 4
M Falls ---.getText == leer Problem! Java Basics - Anfänger-Themen 9
A Klassen JTextField eigtl leer aber es werden Methoden ect. angezeigt Java Basics - Anfänger-Themen 9
F JNumberField leer? Java Basics - Anfänger-Themen 16
X Array leer Java Basics - Anfänger-Themen 15
H Input/Output Testen ob Datei leer Java Basics - Anfänger-Themen 14
S Prüfen,ob array leer ist Java Basics - Anfänger-Themen 15
B Process.getInputStream immer leer Java Basics - Anfänger-Themen 3
F Eigene Exception StackTrace und Message ist leer warum??? Java Basics - Anfänger-Themen 3
R Adjazenzliste leer Java Basics - Anfänger-Themen 3
G Integer auf Leer überprüfen Java Basics - Anfänger-Themen 44
reno Testen ob String leer ist Java Basics - Anfänger-Themen 12
D Drucken - Seite leer Java Basics - Anfänger-Themen 2
P Prüfen ob alle zellen der tabelle leer sind Java Basics - Anfänger-Themen 9
H Datei nach serialisieren leer ? Java Basics - Anfänger-Themen 10
G jede 2te zeile in vector leer einfügen, wie? Java Basics - Anfänger-Themen 4
M Feststellen, das Textboxen leer sind! Java Basics - Anfänger-Themen 3
M String ist leer Java Basics - Anfänger-Themen 14
B Zip ist leer Java Basics - Anfänger-Themen 5
B Datei leer? Java Basics - Anfänger-Themen 6
E Probleme bei Stringvergleich, leer String = gefülltem String Java Basics - Anfänger-Themen 2
K Variable leer oder nicht Java Basics - Anfänger-Themen 4
C checken ob ein Vektor leer ist Java Basics - Anfänger-Themen 3
P Fragen, ob Eingabefeld leer ist oder nicht Java Basics - Anfänger-Themen 2
G jComboBox zunächst leer Java Basics - Anfänger-Themen 6
R Zeile leer lassen Java Basics - Anfänger-Themen 2
V JList(s) leer sobald ein Eintrag in 2+ Listen gewählt wird Java Basics - Anfänger-Themen 3
H Übergabe eines Wertes an eine Bean --> Bean leer Java Basics - Anfänger-Themen 6
K Prüfen, ob Queue leer ist Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben