Beuth Hochschule Bauplan eines Views WS15/16, S. 1 Bauplan eines Views
für die Aufgabe-04: Ein Rechner nach dem MVC-Muster strukturiert
Auf dem Bildschirm soll der Rechner etwa so aussehen:
Der folgende Bauplan soll alle Grabo-Objekte des Rechners und ihre Lage zueinander sichtbar machen.
Die (unsichtbaren) Box-Objekte sind grau gezeichnet, die anderen (sichtbaren) Objekte schwarz.
z1:
z2:
submit z1 + z2:
z1 - z2:
z1 * z2:
z1 / z2:
z1 % z2:
_ x
JFrame Y-Box X-Box
JLabel JTextField
JFrame
Y-Box X-Box JTextField
JButton int-Rechner
JTextField
X-Box
Das JFrame-Objekt hat einen Y-Box Layout-Manager (der ähnelt einem vertikalen Box-Objekt).
Außerdem gibt es 7 JLabel-Objekte, 7 JTextField-Objekte, 7 X-Box-Objekte und 1 JButton- Objekt.
S. 2, WS15/16 Bauplan eines Views Beuth-Hochschule Eine Grabo-Klasse ist eine Unterklasse der Klasse java.awt.Component (einschließlich der Klasse Component selbst).
Ein Grabo-Objekt ist ein Objekt einer Grabo-Klasse (oder: ist ein Component-Objekt).
Eine Behälter-Klasse ist eine Unterklasse der Klasse java.awt.Container. Ein Behälter-Objekt (engl. container object) ist ein Objekt einer Behälterklasse.
Die Klasse Container ist eine Unterklasse der Klasse Component. Daraus folgt:
Jede Behälter-Klasse ist auch eine Grabo-Klasse.
Jedes Behälter-Objekt ist auch ein Grabo-Objekt.
Wenn ein Grabo-Objekt erzeugt wird, erscheint seine grafische Darstellung (mehr oder weniger) automatisch auf dem Bildschirm (z.B. als ein Fenster oder ein Button oder ein Label etc.).
In ein Behälter-Objekt (engl. container object) kann man andere Grabo-Objekte hineintun, die dann auf dem Bildschirm innerhalb des Behälterobjekts erscheinen.
Bestimmte Behälter-Objekte sind selbst sichtbar (z.B. JFrame-Objekte). Andere Behälter-Objekte sind selbst unsichtbar, d.h. man sieht nur die Objekte, die in den Behälter hineingetan wurden, aber nicht den Behälter selbst. Dies ist z.B. bei Box-Objekten der Fall.
Es gibt 2 Arten von Box-Objekten:
Horizontale Box-Objekte (H-Box-Objekte oder X-Box-Objekte),
bei denen die enthaltenen Objekte horizontal (von links nach rechts) angeordnet werden.
Vertikale Box-Objekte (V-Box-Objekte oder Y-Box-Objekte)
bei denen die enthaltenen Objekte vertikal (von oben nach unten) angeordnet werden.
Indem man Box-Objekte schachtelt (Box-Objekte in Box-Objekte hineintut), z.B.
X-Box-Objekte in Y-Box-Objekte oder Y-Box-Objekte in X-Box-Objekte oder X-Box-Objekte in X-Box-Objekte oder Y-Box-Objekte in Y-Box-Objekte
kann man viele verschiedene Layouts gestalten.
Wie tut man ein Component-Objekt com in ein Box-Objekt box?
box.add(com); // com wird hinter allen schon in der box vorhandenen Objekten // in die box eingefuegt.
box.add(com, 0); // com wird als 0. Objekt(d.h: als Objekt mit dem Index 0)
// in die box eingefuegt. Eventuell schon in der box vorhandenen // Objekte werden (nicht zerstört sondern) um 1 Position
// verschoben .
box.add(com, 3); // com wird als 3. Objekt(d.h: als Objekt mit dem Index 3) in die // box eingefuegt. Das klappt nur, wenn die box schon mindestens // 3 Objekte enthaelt (sonst IllegalArgumentException).
// Eventuell schon in der box vorhandene Objekte (ab Index 3) // werden um 1 Position verschoben.
Beuth Hochschule Bauplan eines Views WS15/16, S. 3