WW3
0000-00-00 00:00:00
import java.awt.*;
import java.awt.event.*;
/**
* Diese Klasse liefert die Oberfläche und stellt somit die Welt dar, in der Willi und Siggi leben.
* Projekt zur Einführung der Objektorientierten Programmierung, Copyright (c) 2001
* @author W. Kicherer
* @version 1.0
*/
public class Planet extends Frame {
// Die Attribute der Klasse
private Color weltFarbe;
private Kobold willi;
private Kobold siggi;
private Button williZeigen = new Button();
private Button siggiZeigen = new Button();
private Button verstecken = new Button();
private Button exit = new Button();
private FlowLayout myFlowLayout = new FlowLayout();
// Die Methoden der Klasse
/** Konstruktor, wird beim Erzeugen der Klasse aufgerufen.*/
public Planet() {
weltFarbe=Color.yellow;
//die beiden Kobolde werden geboren
willi = new Kobold();
willi.setzeAussehen(250, 100, 50, Color.blue, Color.green);
siggi = new Kobold();
siggi.setzeAussehen(200, 200, 60, Color.yellow, Color.yellow);
this.setLayout(myFlowLayout);
setBackground(weltFarbe);
//Button zum Zeigen von Willi
williZeigen.setLabel("Willi zeigen");
//Wird der zeigen-Button gedrückt, wird zeigen_mouseClicked(e) aufgerufen.
//Diese Methode wird dem Betriebssystem bekannt gemacht, so dass es bei
//einem Mausklick auf den Button die angegebene Methode aufruft.
williZeigen.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
williZeigen_mouseClicked(e);
}
});
this.add(williZeigen, null);
//Button zum Zeigen von Siggi
siggiZeigen.setLabel("Siggi zeigen");
//Wird der zeigen-Button gedrückt, wird zeigen_mouseClicked(e) aufgerufen.
//Diese Methode wird dem Betriebssystem bekannt gemacht, so dass es bei
//einem Mausklick auf den Button die angegebene Methode aufruft.
siggiZeigen.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
siggiZeigen_mouseClicked(e);
}
});
this.add(siggiZeigen, null);
//Button zum Verstecken von Willi und Siggi
verstecken.setLabel("verstecken");
//Wird der verstecken-Button gedrückt, wird verstecken_mouseClicked(e)
//aufgerufen.
//Diese Methode wird dem Betriebssystem bekannt gemacht, so dass es bei
//einem Mausklick auf den Button die angegebene Methode aufruft.
verstecken.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
verstecken_mouseClicked(e);
}
});
this.add(verstecken, null);
//Button zum Verlassen des Programms
exit.setLabel("EXIT");
//Wird der Button gedrückt, wird exit_mouseClicked(e) aufgerufen.
//Diese Methode wird dem Betriebssystem bekannt gemacht, so dass es bei
//einem Mausklick auf den Button die angegebene Methode aufruft.
exit.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
exit_mouseClicked(e);
}
});
this.add(exit, null);
//Wird auf die Zeichenflaeche (Canvas) geklickt, wird
//canvas_mousePressed(e) aufgerufen.
//Diese Methode wird dem Betriebssystem bekannt gemacht, so dass es bei
//einem Mausklick auf die Zeichenflaeche die angegebene Methode aufruft.
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
canvas_mousePressed(e);
}
});
}//Ende des Konstruktors
/** Diese Methode wird vom Betriebssystem aufgerufen, wenn das Fenster
* neu gezeichnet werden muss, z.B. wenn ein anderes Fenster, welches
* dieses Fenster verdeckt hatte, weggeschoben wird.
* @param g Gibt an, wohin gezeichnet werden soll.
*/
public void paint(Graphics g) {
willi.malen(g);
siggi.malen(g);
}
/** Die Methode wird aufgerufen, wenn der williZeigen-Button gedrueckt wurde.
* Die Verbindung des Mausklicks mit der Methode, wurde im Konstruktor Planet()
* hergestellt
* @see Planet()
* @param e Das Ereigniss, welches von der Maus ausgelöst wurde.
*/
public void williZeigen_mouseClicked(MouseEvent e) {
willi.zeigen();
//die Methode repaint(), fordert das Betriebssysten auf, das Fenster neu zu
//zeichnen, da sich etwas geaendert hat. Das Betriebssystem ruft dann
//die obige Methode paint(Graphics g) auf.
repaint();
}
/** Die Methode wird aufgerufen, wenn der siggiZeigen-Button gedrueckt wurde.
* Die Verbindung des Mausklicks mit der Methode, wurde im Konstruktor Planet()
* hergestellt.
* @see Planet()
* @param e Das Ereigniss, welches von der Maus ausgelöst wurde.
*/
public void siggiZeigen_mouseClicked(MouseEvent e) {
siggi.zeigen();
//die Methode repaint(), fordert das Betriebssysten auf, das Fenster neu zu
//zeichnen, da sich etwas geaendert hat. Das Betriebssystem ruft dann
//die obige Methode paint(Graphics g) auf.
repaint();
}
/** Die Methode wird aufgerufen, wenn der verstecken-Button gedrueckt wurde.
* Die Verbindung des Mausklicks mit der Methode, wurde im Konstruktor Planet()
* hergestellt.
* @see Planet()
* @param e Das Ereigniss, welches von der Maus ausgelöst wurde.
*/
public void verstecken_mouseClicked(MouseEvent e) {
willi.verstecken();
siggi.verstecken();
//die Methode repaint(), fordert das Betriebssysten auf, das Fenster neu zu
//zeichnen, da sich etwas geaendert hat. Das Betriebssystem ruft dann
//die obige Methode paint(Graphics g) auf.
repaint();
}
/** Die Methode wird aufgerufen, wenn der exit-Button gedrueckt wurde.
* Die Verbindung des Mausklicks mit der Methode, wurde im Konstruktor Planet()
* hergestellt.
* @see Planet()
* @param e Das Ereigniss, welches von der Maus ausgelöst wurde.
*/
public void exit_mouseClicked(MouseEvent e) {
System.exit(0);
}
/** Die Methode wird aufgerufen, wenn im Zeichenfenster geklickt wurde.
* Die Verbindung des Mausklicks mit der Methode, wurde im Konstruktor Planet()
* hergestellt.
* @see Planet()
* @param e Das Ereigniss, welches von der Maus ausgelöst wurde. Damit laesst sich der Ort des
Mausklicks ermitteln (mit e.getX() und e.getY()).
*/
public void canvas_mousePressed(MouseEvent e) {
int x=e.getX();
int y=e.getY();
//Der Parameter g gibt an, wo gezeichnet werden soll. Hier: im aktuellen
//Fenster.
Graphics g=this.getGraphics();
g.setColor(Color.black);
g.fillOval(x,y, 4,4);
}
}