Java Reference
In-Depth Information
case 4:
coben = Color.gray;
cmitte = Color.orange;
cunten = Color.gray;
break;
}
int h=getHeight()/3-12;
int b=getWidth()-6;
g.setColor(coben);
g.fillOval(3, 3, b, h);
g.setColor(cmitte);
g.fillOval(3, getHeight()/3+6, b, h);
g.setColor(cunten);
g.fillOval(3, 2*getHeight()/3+9, b, h);
g.setColor(Color.black);
g.drawOval(3, 3, b, h);
g.drawOval(3, getHeight()/3+6, b, h);
g.drawOval(3, 2*getHeight()/3+9, b, h);
}
public void setPhase(int i) {
phase=i;
repaint();
}
}
Listing 14.1 Von JPanel abgeleitetes JAmpelPanel
Das Panel verwendet einen int -Wert zur Beschreibung der Phase, in der sich die Ampel
befindet, und drei Farbwerte für oben, Mitte und unten. Die Methode paintComponent
wird überschrieben und zeichnet die Ampel abhängig von der Phase, in der sie sich
befindet. Als Schnittstelle nach außen erhält Sie eine Methode, um die Ampel in die
jeweilige Phase versetzen zu können.
Erstellen Sie einen Programm-Frame mit dem Namen Ampelsteuerung nach der Vor-
lage von Abbildung 14.1 . Setzen Sie in der Vorschauansicht von Jigloo zuerst ein JPanel
an die betreffende Position der Ampel, und ersetzen Sie anschließend im Quellcode den
Typ JPanel durch JAmpelPanel . Die Radiobuttons für die Handsteuerung sind einer But-
tonGroup zugeordnet und auf einem eigenen Standard-Panel abgelegt. Das hat den Vor-
teil, dass sie nur einmal innerhalb des Panels platziert werden müssen. Verschiebungen
des Panels machen die Buttons dann alle gemeinsam mit. Über die Eigenschaft border
Search WWH ::




Custom Search