16.2 Turtle-Demo
 
Ein Swing- Programm

 

Doenload:

TurtleDemo. java

Neben Applets sind Swing-Klassen der modernste Java-Standard von Programmen mit grafischen Oberflächen. Obwohl wir uns erst später mit diesen Swing-Klassen genauer auseinandersetzen werden, wollen wir uns dem Umgang mit ihnen behutsam nähern. Wir wollen ein Programm schreiben, dessen Oberfläche aus zwei Komponenten besteht: eine Zeichenfläche für die Turtle und einem anklickbaren Button. Zunächst befinde sich die Turtle (sie selber beleibt unsichtbar, allein ihre Spuren kann man sehen) in der Position (50, 150) Bei jedem Anklicken des Buttons schreitet die Turtle um 100 Einheiten in Blickrichtung weiter und dreht sich um 100 Grad. Das nebenstehende Bild zeigt die Spur der Turtle nach einer Reihe von Klicks. Das Programm TurtleDemo kann man als Vorlage für weitere Turtle-Grafiken benutzen. Für Manipulationen sind lediglich die gelb unterlegten Zeilen von Interesse.

 

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TurtleDemo extends JFrame implements ActionListener{

   Turtle eineTurtle;
   
   public TurtleDemo(String titel){
      super(titel);
      addWindowListener(new WindowAdapter() {
           public void windowClosing (WindowEvent evt) {System.exit(0);}});
      
      Container cp = getContentPane();
      cp.setLayout(new BorderLayout());



      eineTurtle = new Turtle(50,150);// #1
      eineTurtle.setPreferredSize(new Dimension(200, 200));
      eineTurtle.setBackground(Color.white);
      cp.add(eineTurtle,BorderLayout.CENTER);

      JButton button = new JButton("Zeichne!");
      button.addActionListener(this);
      cp.add(button,BorderLayout.SOUTH);
      
      pack();
      setVisible(true);
      
   }
   
   public void actionPerformed(ActionEvent e){
      zeichnen();   //#2
   }
   
   public void zeichnen(){   // #3
      eineTurtle.vor(100);   
      eineTurtle.rechts(120);
   }                         
   
   public static void main(String[] args){
      new TurtleDemo("Test"); // #4
   }
}

#1

In der Zeile #1 wird eine Turtle (genauer eine Turtle-Instanz) erzeugt. In Klammern stehen die Koordinaten (in Pixel) wo sie beim Erzeugen positioniert sein soll.

#2

Wenn durch das Anklicken des Buttons eine Aktion auslöst, wird die Methode zeichnen()  aufgerufen.

#3

Implementierung der Methode zeichnen(). Ihr Inhalt spricht für sich

#4

Hier kann man dem Rahmen, in dem die Turtle-Grafik samt Button dargestellt ist ein Name zugewiesen.

 

[Hausaufgaben] In den Hausaufgaben sind Beispiele aufgezeigt, wie man mit dieser DemoKlasse spielen kann.
zu 16.3 Binär-Baum
zur Startseite www.pohlig.de  (C) MPohlig 2003