N
nassi
Gast
Hi,
habe ein Problem bei Java, könnt ihr mir kurz helfen, wenn ihr Zeit habt?
Es geht um folgendes:
Folgende Aufgabenstellung versuch ich zu lösen:
Es geht darum, dass man einen Hintergrund hat und darauf sollen bewegliche und nicht bewegliche Objekte zu sehen sein. Auto, Flugzeug, Ufo beweglich und Haus, Bäume nicht beweglich.
Vorgegeben ist eine Struktur:
class abstract erzeugeBildKlasse
class abstract festeObjekte extends erzeugeBildKlasse
class abstract bewegbareObjekte extends erzeugeBildKlasse
class abstract linearBewegbareObjekte extends bewegbareObjekte
class abstract bliebigBewegbareObjekte extends bewegbareObjekte
class auto extends linearBewegbareObjekte
class ufo extends bliebigBewegbareObjekte
class haus extends festeObjekte
class baum extends festeObjekte
So, ich habe angefangen zu schreiben und habe die Struktur erstmal außer acht gelassen. Ich habe eine Klasse: class Frame extends JFrame implements Runnable
Ich habe einen Konstruktor, der ein JFrame erzeugt.
Dann habe ich eine Methode startAnimation(); die in dem Konstruktor aufgerufen wird. In dieser Emthode wird lediglich ein Thread gestartet.
Dann gibt es natürlich die run(); die vom Thread aufgerufen wird, die die Bilddateien in einen Container(Mediatracker) packt und in einer Endlosschleife die Bewegung des Ufos und eines Autos ausführt.
Desweiteren wird in run() die Methode repaint aufgerufen, die zuerst die Methode update (Doppel Pufferung) startet und dann die Methode paint();
Letztlich nur noch die main() methode, die einfach nur ein Frame Objekt erzeugt.
Soweit funktioniert alles wunderbar, alles bewegt sich, wie es soll, es ist Flimmerfrei usw.!!
Jetzt das Problem:
Wenn ich das ganze nach der oben angegeben Struktur mache, und ein Ufo Objekt erzeuge, dann läuft das eine Ufo-Objekt ja auch, aber wenn ich nun ein zweites Ufo-Objekt oder ein Auto-Objekt einfügen (erzeugen) will, dann startet er ja 3 Frames... und fügt das ganze nicht in ein Frame... Das liegt ja daran, dass der super() Konstruktor jeweils aufgerufen wird und der startet ein neues Frame...
Ich habe echt schon viel ausprobiert, aber ich komm nicht drauf, wie ich das ganze ordnen soll, damit ich durch erzeugen der Ufo, Auto usw. Objekte alle in ein Fenster packe...
Das Problem istja auch, dass nur die Untersten Klassen, also Ufo, Auto usw., nicht abstract sind nur diese erzeugt werden können...
Bitte bitte um Hilfe!!!
Wenn ihr mehr Informationen, wie Quelltext und Bilder braucht, dann schick ich die gerne!!
Mfg
Chris
habe ein Problem bei Java, könnt ihr mir kurz helfen, wenn ihr Zeit habt?
Es geht um folgendes:
Folgende Aufgabenstellung versuch ich zu lösen:
Es geht darum, dass man einen Hintergrund hat und darauf sollen bewegliche und nicht bewegliche Objekte zu sehen sein. Auto, Flugzeug, Ufo beweglich und Haus, Bäume nicht beweglich.
Vorgegeben ist eine Struktur:
class abstract erzeugeBildKlasse
class abstract festeObjekte extends erzeugeBildKlasse
class abstract bewegbareObjekte extends erzeugeBildKlasse
class abstract linearBewegbareObjekte extends bewegbareObjekte
class abstract bliebigBewegbareObjekte extends bewegbareObjekte
class auto extends linearBewegbareObjekte
class ufo extends bliebigBewegbareObjekte
class haus extends festeObjekte
class baum extends festeObjekte
So, ich habe angefangen zu schreiben und habe die Struktur erstmal außer acht gelassen. Ich habe eine Klasse: class Frame extends JFrame implements Runnable
Ich habe einen Konstruktor, der ein JFrame erzeugt.
Dann habe ich eine Methode startAnimation(); die in dem Konstruktor aufgerufen wird. In dieser Emthode wird lediglich ein Thread gestartet.
Dann gibt es natürlich die run(); die vom Thread aufgerufen wird, die die Bilddateien in einen Container(Mediatracker) packt und in einer Endlosschleife die Bewegung des Ufos und eines Autos ausführt.
Desweiteren wird in run() die Methode repaint aufgerufen, die zuerst die Methode update (Doppel Pufferung) startet und dann die Methode paint();
Letztlich nur noch die main() methode, die einfach nur ein Frame Objekt erzeugt.
Soweit funktioniert alles wunderbar, alles bewegt sich, wie es soll, es ist Flimmerfrei usw.!!
Jetzt das Problem:
Wenn ich das ganze nach der oben angegeben Struktur mache, und ein Ufo Objekt erzeuge, dann läuft das eine Ufo-Objekt ja auch, aber wenn ich nun ein zweites Ufo-Objekt oder ein Auto-Objekt einfügen (erzeugen) will, dann startet er ja 3 Frames... und fügt das ganze nicht in ein Frame... Das liegt ja daran, dass der super() Konstruktor jeweils aufgerufen wird und der startet ein neues Frame...
Ich habe echt schon viel ausprobiert, aber ich komm nicht drauf, wie ich das ganze ordnen soll, damit ich durch erzeugen der Ufo, Auto usw. Objekte alle in ein Fenster packe...
Das Problem istja auch, dass nur die Untersten Klassen, also Ufo, Auto usw., nicht abstract sind nur diese erzeugt werden können...
Bitte bitte um Hilfe!!!
Wenn ihr mehr Informationen, wie Quelltext und Bilder braucht, dann schick ich die gerne!!
Mfg
Chris