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 |