erstellt 25.06.99; übersetzt 07.02.11, überarbeitet 20.04.23, 08.04.24; Deutsche Übersetzung Heinrich Gailer
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.
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.
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.
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.
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.
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.