erstellt 25.06.99; übersetzt 07.02.11, überarbeitet 20.04.23, 08.04.24; Deutsche Übersetzung Heinrich Gailer


Kapitel 59 Programmieraufgaben

Aufgabe 1 — Vier Buttons

Wir passen das Programm ZweiButtons so an, dass es vier Buttons hat: einen roten, einen grünen, einen blauen und einen grauen. Das Anklicken eines Buttons ändert die Farbe des zugehörigen Frames. Das Programm wird wie folgt aussehen, wenn der grüne Button angeklickt wurde:

Eine vernünftige Möglichkeit das zu tun ist: Wir kopieren das Beispielprogramm aus diesem Kapitel und modifizieren Sie es.

Eine richtige Herausforderung ist es das Programm von Grund auf zu schreiben.

Zurück zum Inhaltsverzeichnis.


Aufgabe 2 — Farbkreis

Wir schreiben ein Programm, dass nur einen Button in dem Frame hat. Das Anklicken des Buttons kreist durch die Farben: rot --> grün --> blau --> grau --> rot  und so weiter. Je Klick wird die Farbe geändert. Zusätzlich zur setBackground( Color.color ) Methode, die wir verwendet haben, werden wir die Color getBackground() Methode brauchen, um die aktuelle Farbe zu bekommen.

Eine andere Möglichkeit das zu tun (ein etwas umständlicherer Weg), ist die Verwendung einer Instanzvariablen (vom Typ Color) im Frame, um die aktuelle Farbe zu halten.

Zurück zum Inhaltsverzeichnis.


Aufgabe 3 — Drei-Button-Monte

Wir schreiben ein Programm, dass das folgende Spiel implementiert:

Es gibt drei Buttons in einem Frame. Zwei der Buttons werden das Programm mit der Methode System.exit(0) beenden. Der verbleibende Button wird die Farbe des Frames auf grün (Gewinn) setzen. Der Gewinnbutton wird jedes Mal neu gesetzt, wenn das Spiel gespielt wird.

Der einfache Weg, das zu tun (obwohl es wie Betrug aussieht), ist es jeden Button auf die gleiche Weise zu behandeln. Die actionPerformed() Methode wird noch nicht einmal prüfen welcher Button angeklickt wurde. Sie wird eine Zufallszahl, einen Integer zwischen 0 und 2, ermitteln und, wenn die 0 kommt, die Gewinn-, andererseits die Verlustaktion durchführen.

Die Anzahl der aufeinanderfolgenden Gewinnaktionen wird in der Titelzeile des Frames ausgegeben.

Das ist ähnlich wie in Casinos manche Glücksspielautomaten funktionieren, die dem Spieler suggerieren, das es Gewinnzüge gibt. Aber tatsächlich ignoriert die Maschine, was der Spieler tut, und weist einen Gewinn nur nach vorher festgelegten Wahrscheinlichkeitsquoten hin und wieder an. Wir werden die Random-Klasse aus dem Package java.util brauchen:

Random rnd = new Random(); // ein Random-Objekt erzeugen

. . .

int zufallszahl = rnd.nextInt( 3 );  // erzeugt eine Zufallszahl zwischen  0 und 2

Zurück zum Inhaltsverzeichnis.


Aufgabe 4 — Gewinnserie

Wir verändern das Programm aus Aufgabe 3, so dass nur noch eine Zahl der drei Zahlen das Programm beendet. Der Anwender fährt fort zu klicken, bis die Verlustaktion eintritt.

Zurück zum Inhaltsverzeichnis.


Aufgabe 5 — Zahlenschloss

Wir erzeugen einen Frame mit 10 Buttons, beschriftet von 0 bis 9. Um das Programm zu beenden, müssen drei Buttons in der richtigen Reihenfolge angeklickt werden, wie z.B. 7-3-5. Wenn die falsche Kombination verwendet wird, wird der Frame rot.

Zurück zum Inhaltsverzeichnis.


Aufgabe 6 — Vergrößern- und Verkleinern-Button

Wir erzeugen einen Frame mit zwei Buttons, beschriftet als Vergrößern und Verkleinern. Wenn der Vergrößern-Button angeklickt wird, wird der Frame um 10 Prozent vergrößert. Wenn der Verkleinern-Button angeklickt wird, wird der Frame um 10 Prozent verkleinert.

Dafür werden wir in der actionPerformed() Methode die setSize() verwenden. Dann verfolgen wir die aktuelle Größe des Frames mit zwei Instanzvariablen vom Typ int. Um den Frame zu vergrößern oder verkleinern, können wir Integer-Arithmetik verwenden oder eine Typumwandlung vornehmen.

Zurück zum Inhaltsverzeichnis.


Ende der Aufgaben.