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); } }