Farben für den Rechner werden mit Hilfe von Farbmodellen spezifiziert. Ein einfaches und weitverbreitetes Farbmodell ist das sogenannte RGB-Modell (Rot, Grün, Blau): Eine Farbe ist eindeutig durch relative Anteile der drei Farben beschrieben. Häufig werden dabei für die relativen Farbanteile ganze Zahlen zwischen 0 und 255 verwendet, womit sich eine Farbe durch ein Tripel dieser Farbanteile beschreiben läßt. Zum Beispiel beschreibt das Tripel (255,0,0) die Farbe Rot, (0,0,255) die Farbe Blau, und (255,255,0) die Farbe Gelb (volle Mischung von Rot und Grün).
Eine Ihrer Hauptaufgaben beim Lösen dieses Übungsblattes wird das Nachschlagen, Lesen, und Verstehen der Klassen und Schittstellen sein, die das Java AWT bereitstellt. Benutzen Sie dazu die JDK Online Dokumentation. Was Sie unbedingt machen sollten, ist in der Online-Version des Java-Tutorials zu lesen. Die in der Vorlesung diskutierten Beispiele sollen Ihnen auch den Einstieg erleichtern.
Sie sollen in drei Schritten ein Applet wie folgt schreiben:
Dabei sollen sie das folgende Design benutzen.
Realisieren sie das Design gemäß dem folgenden Programmgerüst:
import java.awt.Panel; import java.awt.Component; import java.awt.Scrollbar; import java.awt.TextField; import java.awt.Label; import java.awt.Color; import java.awt.GridBagLayout; import java.awt.GridBagConstraints; import java.awt.event.ActionListener; import java.awt.event.AdjustmentListener; import java.awt.event.ActionEvent; import java.awt.event.AdjustmentEvent; import java.applet.Applet; class ColorChooser extends Panel implements AdjustmentListener, ActionListener { private TextField text = ... private Scrollbar bar = ... private RGB rgb; ColorChooser(RGB r, Color color) { ... } int getValue() { ... } // handle event from text public void actionPerformed(ActionEvent e) { ... } // handle event from bar public void adjustmentValueChanged(AdjustmentEvent e) { ... } } public class RGB extends Applet { private ColorChooser red = ... private ColorChooser green = ... private ColorChooser blue = ... private Label label = ... public void init() { ... } void refresh() { ... } }
Schreiben Sie das Applet ohne Textfelder und mit Default-Layout. Es sieht dann etwa so aus:
Fügen Sie die Textfelder hinzu. Das Applet sieht dann so aus:
Bei Textfeldern können ungültige Zeichenketten eingegeben werden (keine Zahlen, falscher Zahlenbereich). Setzen Sie bei einer Fehleingabe den Wert auf den aktuellen Wert des Schiebers zurück.
Fügen Sie jetzt das Layout mit Hilfe des GridbagLayout-Managers hinzu.