erstellt 25.06.99; übersetzt 07.02.11; Deutsche Übersetzung Heinrich Gailer


Kapitel 59 Programmieraufgaben

Aufgabe 1 — Vier Buttons

Passen Sie 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: Kopieren Sie 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

Schreiben Sie 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 Sie 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

Schreiben Sie 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.

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. Sie 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

Verändern Sie das Programm aus Aufgabe 3, so dass nur ein Button das Programm beendet. Wenn der Anwender einen der anderen Buttons anklickt, dann ändert der Frame nur seine Farbe. Der Anwender fährt fort zu klicken, bis der Verlustbutton angeklickt wird. Das Ziel des Anwenders ist es so oft wie möglich einen Button anzuklicken.

Zurück zum Inhaltsverzeichnis.


Aufgabe 5 — Zahlenschloss

Erzeugen Sie 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

Erzeugen Sie 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.

Tun Sie das in der actionPerformed() Methode, indem Sie setSize() verwenden. Verfolgen Sie die aktuelle Größe des Frames mit zwei Instanzvariablen vom Typ int. Wenn Sie sie um 10 Prozent vergrößern oder verkleinern, müssen Sie Integer-Arithmetik verwenden oder eine Typumwandlung vornehmen.

Zurück zum Inhaltsverzeichnis.


Ende der Aufgaben.