so sieht das aus:
[img=http://img527.imageshack.us/img527/701/neubitmapjt5.th.jpg]zuerst auf zeichnung->neue zeichnung
dadurch erhält man das objekt zeichnung1, und an dem kann man dann verchiedene methoden ausführen
hier der QT für Zeichnung:
public class Zeichnung
{
private Quadrat wand;
private Quadrat fenster;
private Dreieck dach;
private Kreis sonne;
/**
* Erzeuge ein Exemplar der Klasse Zeichnung
*/
public Zeichnung()
{
// nichts zu tun hier, alle Exemplarvariablen werden automatisch
// mit null initialisiert.
}
/**
* Zeichne die Zeichnung.
*/
public void zeichne()
{
wand = new Quadrat();
wand.vertikalBewegen(80);
wand.groesseAendern(100);
wand.sichtbarMachen();
fenster = new Quadrat();
fenster.farbeAendern("schwarz");
fenster.horizontalBewegen(20);
fenster.vertikalBewegen(100);
fenster.sichtbarMachen();
dach = new Dreieck();
dach.groesseAendern(50, 140);
dach.horizontalBewegen(60);
dach.vertikalBewegen(70);
dach.sichtbarMachen();
sonne = new Kreis();
sonne.farbeAendern("blau");
sonne.horizontalBewegen(180);
sonne.vertikalBewegen(-10);
sonne.groesseAendern(60);
sonne.sichtbarMachen();
}
/**
* Ändere die Darstellung in schwarz-weiß.
*/
public void inSchwarzWeissAendern()
{
if(wand != null) // nur wenn schon gezeichnet wurde ...
{
wand.farbeAendern("schwarz");
fenster.farbeAendern("weiss");
dach.farbeAendern("schwarz");
sonne.farbeAendern("schwarz");
}
}
/**
* Ändere die Darstellung in Farbe.
*/
public void inFarbeAendern()
{
if(wand != null) // nur wenn schon gezeichnet wurde ...
{
wand.farbeAendern("rot");
fenster.farbeAendern("schwarz");
dach.farbeAendern("gruen");
sonne.farbeAendern("gelb");
}
}
public void langsamHorizontalBewegen()
{
if(wand != null)
{
sonne.langsamHorizontalBewegen(5);
}
}
public void langsamVertikalBewegen()
{
if(wand != null)
{
sonne.langsamVertikalBewegen(5);
}
}
public void Sonnenuntergang()
{
if(wand != null)
{
sonne.langsamHorizontalBewegen(5);
sonne.langsamVertikalBewegen(5);
}
}
}
und er für Kreis:
public class Kreis
{
private int durchmesser;
private int xPosition;
private int yPosition;
private String farbe;
private boolean istSichtbar;
/**
* Erzeuge einen neuen Kreis an einer Standardposition mit
* einer Standardfarbe.
*/
public Kreis()
{
durchmesser = 30;
xPosition = 20;
yPosition = 60;
farbe = "blau";
istSichtbar = false;
}
/**
* Mache diesen Kreis sichtbar. Wenn es bereits sichtbar ist, tue
* nichts.
*/
public void sichtbarMachen()
{
istSichtbar = true;
zeichnen();
}
/**
* Mache diesen Kreis unsichtbar. Wenn es bereits unsichtbar ist, tue
* nichts.
*/
public void unsichtbarMachen()
{
loeschen();
istSichtbar = false;
}
/**
* Bewege diesen Kreis einige Bildschirmpunkte nach rechts.
*/
public void nachRechtsBewegen()
{
horizontalBewegen(20);
}
/**
* Bewege diesen Kreis einige Bildschirmpunkte nach links.
*/
public void nachLinksBewegen()
{
horizontalBewegen(-20);
}
/**
* Bewege diesen Kreis einige Bildschirmpunkte nach oben.
*/
public void nachObenBewegen()
{
vertikalBewegen(-20);
}
/**
* Bewege diesen Kreis einige Bildschirmpunkte nach unten.
*/
public void nachUntenBewegen()
{
vertikalBewegen(20);
}
/**
* Bewege diesen Kreis horizontal um 'entfernung' Bildschirmpunkte.
*/
public void horizontalBewegen(int entfernung)
{
loeschen();
xPosition += entfernung;
zeichnen();
}
/**
* Bewege diesen Kreis vertikal um 'entfernung' Bildschirmpunkte.
*/
public void vertikalBewegen(int entfernung)
{
loeschen();
yPosition += entfernung;
zeichnen();
}
/**
* Bewege diesen Kreis langsam horizontal um 'entfernung'
* Bildschirmpunkte.
*/
public void langsamHorizontalBewegen(int entfernung)
{
int delta;
if (entfernung < 0)
{
delta = -1;
entfernung = -entfernung;
}
else
{
delta = 1;
}
for (int i = 0; i < entfernung; i++)
{
xPosition += delta;
zeichnen();
}
}
/**
* Bewege diesen Kreis langsam vertikal um 'entfernung'
* Bildschirmpunkte.
*/
public void langsamVertikalBewegen(int entfernung)
{
int delta;
if (entfernung < 0)
{
delta = -1;
entfernung = -entfernung;
}
else
{
delta = 1;
}
for (int i = 0; i < entfernung; i++)
{
yPosition += delta;
zeichnen();
}
}
/**
* Ändere den Durchmesser dieses Kreises in 'neuerDurchmesser'
* (Angabe in Bildschirmpunkten).
* 'neuerDurchmesser' muss größer gleich Null sein.
*/
public void groesseAendern(int neuerDurchmesser)
{
loeschen();
durchmesser = neuerDurchmesser;
zeichnen();
}
/**
* Ändere die Farbe dieses Kreises in 'neueFarbe'.
* Gültige Angaben sind "rot", "gelb", "blau", "gruen",
* "lila" und "schwarz".
*/
public void farbeAendern(String neueFarbe)
{
farbe = neueFarbe;
zeichnen();
}
/*
* Zeichne diesen Kreis mit seinen aktuellen Werten auf den Bildschirm.
*/
private void zeichnen()
{
if (istSichtbar)
{
Leinwand leinwand = Leinwand.gibLeinwand();
leinwand.zeichne(
this,
farbe,
new Ellipse2D.Double(xPosition, yPosition, durchmesser, durchmesser));
leinwand.warte(10);
}
}
/*
* Lösche diesen Kreis vom Bildschirm.
*/
private void loeschen()
{
if (istSichtbar)
{
Leinwand leinwand = Leinwand.gibLeinwand();
leinwand.entferne(this);
}
}
}
der Quelltext war schon gegeben...man soll da halt jetzt nur bissle dran rumbasteln...bin ja schon froh das überhaupt was funktioniert...nur soll sich die sonne halt automatisch bewegen, und da hab ich keinen blassen schimmer wie ich das machen soll...
und in sieben wochen is prüfung...OMG...naja wir müssen ja nicht wirklich programmieren sondern nur pseudocode schreiben, aber wenn ich´s in
JAVA kann isses bestimmt besser...