11. Übungsblatt Programmiersprachen SS 99

Prof. Dr. Gert Smolka, Christian Schulte
Ausgabe: 2. Juli 1999 Abgabe: 8. Juli 1999

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:

Huch! Sie müssen schon Java anschalten, damit das Applet funktioniert.

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() { ... }

}

Aufgabe X.1 (15 Punkte)

Schreiben Sie das Applet ohne Textfelder und mit Default-Layout. Es sieht dann etwa so aus:

Huch! Sie müssen schon Java anschalten, damit das Applet funktioniert.

Aufgabe X.2 (7 Punkte)

Fügen Sie die Textfelder hinzu. Das Applet sieht dann so aus:

Huch! Sie müssen schon Java anschalten, damit das Applet funktioniert.

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.

Aufgabe X.3 (11 Punkte)

Fügen Sie jetzt das Layout mit Hilfe des GridbagLayout-Managers hinzu.