GridLayout - Portierung zu HTML/Javascript

Huhu :slight_smile:

Ich bin gerade dabei für ein Projekt diverse LayoutManager zu portieren.

Kurz wie des abläuft:
Eine Client/Server Architektur stellt diverse Popups da. Serverseitig wird ein Paket erzeugt was dem Clienten dann mitteilt „Erstelle ein Fenster mit Layout XYZ und füge folgende Komponenten hinzu.,…“.
Der Client parsed das Paket und erstellt dann jeweils die Komponenten.

Ich möchte nun das ganze auch HTML5-Fähig machen, sodass man über den Browser das ganze nutzen kann.

Das FlowLayout habe ich ziemlich fix portieren können, weil das ganze ja einfach eine Tabelle mit North, South, Center, East und West ist wo die einzelnen Komponenten gesetzt werden.

Jetzt habe ich aber ein kleines Problem bei dem GridLayout.
Hier gibt es als Parameter Cols, Rows, HGap und VGap.

Ich stelle mir aber gerade die Frage, was denn der Unterschied bei Cols/Rows ist, wenn der Wert 0 oder 1 ist.
1 Col bzw. 1 Row ist halt verständlich, aber was ist mit 0? Kann es 0 Cols oder Rows geben, oder ist 0 als „1“ zu betrachten?

Meinst wohl das BorderLayout? :wink:

Beim GridLayout wird damit ein gewisser Automatismus beim Anordnen erreicht, gerade dann, wenn man mehr Komponenten einfügt, als per Zellen definiert wurde.
Probiers mal aus.

Nein, ich mein das GridLayout.

Ja, diesen Automatismus will ich ja Portieren. Die Frage ist ja Grundsätzlich, wie genau das Abläuft.

Wenn ich ein GridLayout habe mit 2 cols und 3 rows, so werden die Komponente nacheinander dort aufgefüllt. Das ist mir bewusst.

Du hast mich oben nicht verstanden. Das FlowLayout kennt keine Layout-Bereiche NORTH, SOUTH, EAST und WEST. Aber das BorderLayout.

Gut, dann habe ich dein Problem wohl noch nicht ganz erfassen können…
Wenn du für col oder row eine 0 einsetzt, werden alle Komponenten sichtbar in eine Spalte oder eine Zeile gesetzt. Wenn du dagegen für row die 0 bspw. gegen eine 1 tauschst, werden nur so viele Komponenten angezeigt, wie in col angegeben. Der Rest fällt unter den Tisch.
Baue dir dazu am besten ein KSKB auf und probiere das aus.

Du hast mich oben nicht verstanden. Das FlowLayout kennt keine Layout-Bereiche NORTH, SOUTH, EAST und WEST. Aber das BorderLayout.

Ok, ich meine es wäre ein FlowLayout - müsste ich mal nachschauen.

Ok, dann bedeuten feste Angaben von Cols/Rows, dass auch wirklich nur soviele Komponenten dargestellt werden. Elemente die darüber hinauslaufen werden gar nicht erst „Angezeigt“.

Solltest du dir für sowas nicht besser gleich JSF anschauen? Alle Layoutmanager zu portieren stell ich mir recht aufwendig vor.

Lex meinte lediglich das du hier was mit den layoutmanagern durcheinander gewürfelt hast

du redest im ersten post von „north,south,west,east,center“ … das ist eindeutig das BorderLayout

das FlowLayout ist in dem sinne nur : packe alles in eine zeile hintereinander, wenn der platz nicht mehr reicht nimm die nächste

so macht das HTML eigentlich fast automatisch, nimmt dir einfach mal einen

, oder sogar

und pack da einfach so viel rein das es rechts über den rand laufen würde, HTML (bzw ein vernünftiger renderer) macht hier dann automatisch den umbruch und fängt in der nächsten zeile an, genau wie wenn du hier eine zeile im editor schreibst die das ende erreicht ohne das du return drückst

ansonsten würde ich dir aber auch ehe in richtung JSF/JSP raten und weiterhin java den krams überlassen

Ja, da habe ich wohl etwas durcheinandergewürfelt :slight_smile:

Dass man ein „FlowLayout“ in HTML nachbilden kann ist logisch. Ich komm ja aus der Webentwicklung, von daher.
Da nimmt man dich entweder ein inline-block Element oder floated das ganze.

Weiterhin Java/Servlets nutzen kommt nicht in Frage, da das ganze auch Standalone als WebApp fungieren soll.

Passt gerade. Ich suche aktuell falls vorhanden eine Layout IMplementierung ähnlich TableLayout oder JGoodies Forms Layout für JavaScript. Also eine in der man auch Column/Row Bereiche angeben kann.

Falls es sowas nicht gibt müsste man selber ran. Das wird allerdings dann etwas Arbeit.

Klar. Ich war auch schon auf der Suche nach derartigem. Leider bin ich da noch nicht fündig geworden.
Sagen wir es mal so, die Layoutmanager existieren ja schon genauso lange wie Java selbst, meine Vermutung ist, dass deratige Implementierungen garantiert irgendwo herumfliegen, gerade im Bereich JSP & Co. Finden konnte ich aber leider bis dato nichts.