animation in applet, thread problem (?)

Status
Nicht offen für weitere Antworten.

kontur

Mitglied
Hallo zusammen,

ich bastel an einem Applet, welches einen Planet und Raumschiff zeichnet und a) das Raumschiff losfliegen lässt, und b) das Wetter ändert und animiert.

Bei dem Code den ich untenstehend habe, scheint mir der Teil mit dem Thread nicht so zu funktionieren, wie ich mir das vorgestellt habe. Ich muss dazu sagen, dass ich vor allem über Threads nicht so viel Bescheid weiß.

Vom Programm werden Buttons zum Zeichnen des Planets, zum Zeichnen des Raumschiffs und zum Starten der Abflugsequenz, sowie Radiobuttons zur Wettermanipulation mit einem "Wetterupdate"-button bereitgestellt.
Ich möchte nun, dass jemand zunächst mal den Planet per Buttonklick zeichnet, dann per Klick das Raumschiff, und es dann Starten lässt.
Leider wird die Komponente aber immer nur nach einem Actioneven neu gezeichnet, nicht aber aus der run() Anweisung meines Threads animation heraus.

Hier mal der Code:
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class RocketUser extends Applet implements ActionListener, Runnable{	
	
	Planet myPlanet = new Planet(400,200,200);
	Rocket myRocket = new Rocket(100,myPlanet.tellHorizon());	
	
	Thread animation;
		
	boolean drawPlanet = false;
	boolean drawRocket = false;
	boolean launchRocket = false;
	
...alle buttons und checkboxen...

	public void init(){
...alle buttons und checkboxen definieren, hinzufügen und actionlistener an die vier buttons			
	}
	
	public void actionPerformed(ActionEvent e){
		if (e.getSource() == drawPlanetButton) drawPlanet = true;		
		if (e.getSource() == drawRocketButton) drawRocket = true;		
		if (e.getSource() == launchRocketButton) launchRocket = true;
		repaint();
	}

	public void handleDrawing(Graphics g){	
		//planet
		if (drawPlanet == true){
			myPlanet.drawPlanet(g,day.getState(),dust.getState(),night.getState(),sunny.getState(),cloudy.getState(),rainy.getState());
			
		}
		//rocket
		if (drawRocket == true){
			if (launchRocket == true){
				myRocket.moveRocket(0,-10);
				myRocket.drawRocket(g,false);
			}else{		
				myRocket.drawRocket(g,false);	
			}
		}else{
		launchRocket = false;	
		}
	}
	
	public void paint(Graphics g){
		handleDrawing(g);
	}
	
	public void start(){
		animation = new Thread();
		animation.start();
	}
	
	public void run(){
		while (Thread.currentThread() == animation){
			repaint();
			try{
			animation.sleep(1000);
			} catch (InterruptedException e){
			break;	
			}
			
		}
	}

}

Ich habe eine weniger komplexe animation getestet, welcher im Wesentlichen der Code hier angelehnt ist, und jene hat funktioniert.
Da wie gesagt nur bei einem actionEvent die repaint() ausgeführt wird, nehme ich an, dass der Fehler beim Thread oder bei der Handhabung des selbigen liegt.

Ich denke mal auch, ich habe das ganze nicht sonderlich solide programmiert, aber ich bin auch noch Anfänger und denke mir, dass man am besten mit Herausforderungen weiterkommt.

Ich bin folglich für jedliche Hilfe oder Anregung überaus dankbar,
k.
 

Campino

Top Contributor
In dem Thread muss iegentlich nur das repaint() und eventuell das sleep() stehen stehen. Die seltsamme if() kannst du ganz weglassen oder zumindest mit einen "equals()" statt einem "==" machen...
 

kontur

Mitglied
Also ich dachte, dass die while schleife im run() nicht schadet, aber auch wenn sie auskommentiert ist, ebenso das break;, dann ändert das zunächst nichts.
Ansonsten steht ja im thread nicht mehr als du gesagt hattest.

Campino hat gesagt.:
Die seltsamme if() kannst du ganz weglassen oder zumindest mit einen "equals()" statt einem "==" machen...

Welches "if" meintest du, und weshalb ist es fehl am Platz? (versuche nachzuvollziehen)


Bin weiterhin dankbar für jedliche Hilfe,
k.
 
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
U Animation bleibt leer (weiß) Java Basics - Anfänger-Themen 5
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 warten lassen Java Basics - Anfänger-Themen 9
F Animation Java Basics - Anfänger-Themen 3
J Animation Java Basics - Anfänger-Themen 2
M Java-Applet zur Mittelwertberechnung Java Basics - Anfänger-Themen 3
D Java Applet wird nicht im Browser angezeigt Java Basics - Anfänger-Themen 6
M bestehendes Projekt als Applet speichern Java Basics - Anfänger-Themen 2
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
A Applet Plot für atan erstellen Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
K JDK installieren displays java applet für MAC Java Basics - Anfänger-Themen 10
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
J Einfache einbindung eines Bildes in ein Applet Java Basics - Anfänger-Themen 4
S Klassen Applet extern aufrufen Java Basics - Anfänger-Themen 1
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
C Applet Probleme Java Basics - Anfänger-Themen 1
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
G Applet in ein JSP einbinden Java Basics - Anfänger-Themen 1
C Java-Applet Fehler "NoClassDefFoundError"? Java Basics - Anfänger-Themen 1
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
J JavaScript findet Applet Methode nicht Java Basics - Anfänger-Themen 2
J Punkte im Java-Applet verbinden Java Basics - Anfänger-Themen 4
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
K Applet funz. im Browser nicht Java Basics - Anfänger-Themen 11
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
thet1983 Erste Schritte <param> Tag in Applet Java Basics - Anfänger-Themen 4
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
G Signiertes Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 1
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
K Frage zu Applet Java Basics - Anfänger-Themen 3
V While Schleife für ganzes Applet Java Basics - Anfänger-Themen 6
P Applet Histogramm Java Basics - Anfänger-Themen 6
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
G Java Applet aus Eclipse heraus testen? Java Basics - Anfänger-Themen 6
S Applet findet Klasse nicht Java Basics - Anfänger-Themen 7
R Java Applet mit Mausklick ansprechen Java Basics - Anfänger-Themen 3
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
S Applet-Objekt ist vor dem Hintergrund Java Basics - Anfänger-Themen 11
F Problem mit Applet Java Basics - Anfänger-Themen 5
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
S Applet Deployment Java Basics - Anfänger-Themen 2
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
H Applet - main()-Methode Java Basics - Anfänger-Themen 4
K Applet wird nicht im Browser und Appletviewer angezeigt Java Basics - Anfänger-Themen 5
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
H Klassen in Eclipse stellt es im Ausgabe-Applet nicht dar Java Basics - Anfänger-Themen 5
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
Dogge Start:Applet nicht Initialisiert Java Basics - Anfänger-Themen 11
D Applet beenden Java Basics - Anfänger-Themen 7
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
M RSA Applet ohne Cipher Java Basics - Anfänger-Themen 15
B String verschlüsseln - Applet - ohne BASE64 Java Basics - Anfänger-Themen 7
S Methode in Applet starten Java Basics - Anfänger-Themen 2
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
W Probleme mit Java Applet Java Basics - Anfänger-Themen 5
M Applet kann in Browser nicht ausgeführt werden Java Basics - Anfänger-Themen 4
L Applet: Laden unterbricht den Browserfokus (scrollen) Java Basics - Anfänger-Themen 2
Z Applet startet nicht bei Domain mit Umlaut Java Basics - Anfänger-Themen 2
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
Helgon ClassNotFound Applet Java Basics - Anfänger-Themen 6
U Applet Signiert und trotzdem Fehlermeldung Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben