samedi 30 mai 2015
LayoutManager Ein Layout manager der (fast) alles kann...
Posted on 06:56 by verona
Hi Leute,
Ich hatte es satt mich mit Java's beschränkten LayoutManager zu ärgern, so ich habe eigenes geschrieben.
Mein Hauptziel war, die Notwendigkeit die Container mit verschiedenen Layouts zu verschachteln zu eliminieren.
Statt dessen sollte man das Layout selbst verschachteln können.
So wurde es gemacht:
Hauptklasse ist (die abstrakte) LayoutNode.
Aktuell habe ich fünf Implementationen: GridNode, RectNode, VerticalNode, HorizontalNode und LeafNode.
Erste vier können beliebig viele Child-Nodes haben. Die Componenten werden nur in der LeafNode aufbewahrt und zwar eins pro LeafNode.
Das ganze ist sehr einfach gehalten, so dass die alle fünf Klassen nur 550 Zeilen belegen.
Jede LayoutNode (ausser RectNode) unterstützt sechs Ausrichtungen (alignment): TOP, BOTTOM, LEFT, RIGHT, CENTER und STRETCHED.
VerticalNode unterstützt logischerweise keine horizontalen und HorizontalNode keine vertikalen Ausrichtungen.
RectNode hat nur ein alignment - STRETCHED.
Und so wird's gemacht:
oder
Das besondere daran ist man kann es beliebig verschachteln.
Hier ist ein Beispiel aus JNL_NestedDemo wo die Componente in einer Schleife erzeugt und addiert werden:
Und so sieht es dann aus:
Die Beispiele und Source kann man hier herunterladen.
Seid bitte so nett uns sagt mir (in Kommentaren) was ihr darüber denkt!
Ich hatte es satt mich mit Java's beschränkten LayoutManager zu ärgern, so ich habe eigenes geschrieben.
Mein Hauptziel war, die Notwendigkeit die Container mit verschiedenen Layouts zu verschachteln zu eliminieren.
Statt dessen sollte man das Layout selbst verschachteln können.
So wurde es gemacht:
Hauptklasse ist (die abstrakte) LayoutNode.
Aktuell habe ich fünf Implementationen: GridNode, RectNode, VerticalNode, HorizontalNode und LeafNode.
Erste vier können beliebig viele Child-Nodes haben. Die Componenten werden nur in der LeafNode aufbewahrt und zwar eins pro LeafNode.
Das ganze ist sehr einfach gehalten, so dass die alle fünf Klassen nur 550 Zeilen belegen.
Jede LayoutNode (ausser RectNode) unterstützt sechs Ausrichtungen (alignment): TOP, BOTTOM, LEFT, RIGHT, CENTER und STRETCHED.
VerticalNode unterstützt logischerweise keine horizontalen und HorizontalNode keine vertikalen Ausrichtungen.
RectNode hat nur ein alignment - STRETCHED.
Und so wird's gemacht:
Java Code:
-
SmartGLayout layout = new SmartGLayout(NodeType.RECT);
oder
Java Code:
-
LayoutNode root = new LayoutNode.RectNode();
-
JNodeLayout layout = new JNodeLayout(root);
Das besondere daran ist man kann es beliebig verschachteln.
Hier ist ein Beispiel aus JNL_NestedDemo wo die Componente in einer Schleife erzeugt und addiert werden:
Java Code:
-
LayoutNode center = root;
-
for (int i = 0; i < 13; i++) {
-
center = create(center, map1, false);
-
}
Und so sieht es dann aus:
Die Beispiele und Source kann man hier herunterladen.
Seid bitte so nett uns sagt mir (in Kommentaren) was ihr darüber denkt!
LayoutManager Ein Layout manager der (fast) alles kann...
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire