Kann Stacklayout das?

Status
Nicht offen für weitere Antworten.
Hallo zusammen,

ich hab ein Problem, ich möchte Composite auf einem anderen Composite hinzufügen und entfernen je nach Lust und Laune.
Die Composites welche ich hinzufügen will, gehen immer über die Gesamt breite des Composites in der sie liegen. Ich fang oben damit an, und bewege mich nach unten. Auf dem obersten ist ein Button mit einem +, wenn man da drauf klickt erscheint draunter eine neues Comp auf dem ebenfalls dieser + Button ist, dazu dann aber noch ein - Button um genau dieses Composite wieder zu entfernen.
Als Beispiel kann ich hier die SpotlightScuhe in einem FinderFenster unter MACOSX anführen, so soll es im Prinzip funktionieren. Nur ich weiß nicht wirklich wie, ich hab es hin bekommen immer eins hinzuzufügen und das letzte zu löschen aber kein beliebiges irgendwo dazwischen.
Ich hab hier im Forum den Tip für Stacklayout zu finden, nun ist meine Frage ob das damit überhaupt geht, und wenn ja wie stell ich das am besten an???

:bahnhof: :bahnhof:
 
S

SlaterB

Gast
unabhängig von irgendwelchen Pattern würde ich das wie folgt bauen:
alle + und - Buttons erhalten denselben ActionListener,

dieser ActionListener ist entweder selber die schlaue Komponente X oder leitet an X weiter,

jedenfalls brauchst du ein X-Objekt, welches eine Liste oder ein Array an 'Composites' verwaltet,
außerdem vielleicht die aktuelle Anzahl, aber die kann man auch jeder aus dem Stand der Liste bestimmen,

jedenfalls wird bei + ein neues Composite erstellt, in die Liste eingefügt und irgendwie auch in die GUI eingefügt,
bei - das letzte Element aus beiden entfernt,

mehr ist das gar nicht, Hauptsache es gibt genau ein Objekt X, welches sich um alles kümmert

----

ein anderer Ansatz wäre, jedes Composite mit dem vorherigen zu verknüpfen, mit eigenem ActionListener usw.
bei - dann sich das eigene zugeordnete Composite entfernen (muss dem ActionListener bekannt sein)
sowie beim vorherigen Composite den +-Button wieder aktivieren

'beim vorherigen Composite den +-Button wieder aktivieren' muss X natürlich genauso machen
 
Das Prinzip ist mir schon klar, sowie wie du es beschrieben hast hab ich es auch umgesetz, meine Sorge ist nun wie ich das der GUI richtig mitteilen soll?
Das StackLayout zeichnet mir immer nur ein Composite und zwar das was ich ihm mit layout.topControl zuweise, aber wie kann ich die anderen dann hintendran hängen?
 
S

SlaterB

Gast
hmm, ich glaube ich weiß dann nicht genug vom StackLayout um hier mitzureden,

nur allgemein nochmal der Tipp, parallel zum Layout selber eine Liste oder sonstige Struktur der Einzel-Komponenten zu führen,
dann müsstest du zu jedem Zeitpunkt wissen, was alles in welcher Reihenfolge vorhanden ist
 
Naja es muß ja nicht unbedingt Stacklayout sein. Ich bin da offen für alles, nur mir gehen die Ideen mitlerweile aus. mit FormLayout hab ich es probiert, da war das Problem das ich um es untereinader zu bekommen, jedem Comp seinen Vorgänger mitgegeben habe, und das das knallt wenn ich einfach einen raus ziehe ist klar.
Mit GridLayout bastel ich im Moment grad rum, aber komm auch auf keinen grünen Zweig.

Also wenn jemand ne bessere Idee hat als raus damit????

:autsch:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben