[SWT] Widget während der Laufzeit hinzufügen

Fabio Hellmann

Erfahrenes Mitglied
Hi Community,
ich arbeite schon seit längerer Zeit jetzt mit SWT und habe auch schon die ein oder andere komplexe Oberfläche damit erstellt. Momentan habe ich die Aufgabe, eine Oberfläche zu erstellen, bei der man (im besten Fall) Widgets während der Laufzeit hinzufügen kann. Entfernen ist nicht notwendig.
Da ich dazu noch nichts dergleichen gefunden habe, war mein erster Ansatz, das über ein Table-Widget zu lösen. Allerdings sieht das ja optisch nicht all zu ansprechend aus.

Daher nun nochmal meine Frage: Ist es möglich, während der Laufzeit der GUI ein Widget (Button, Label, Text, Combo, etc.) hinzuzufügen?

Würde mich über eine Rückmeldung freuen.

Danke

Fabio
 

Fabio Hellmann

Erfahrenes Mitglied
Hey,
danke erstmal für deine schnelle Antwort. Ich habe das jetzt mal ausprobiert. Eine Fehlermeldung bekomme ich zum Glück schon mal nicht. Allerdings wird mir die neue Komponente nicht angezeigt. Ich mache (nachdem ich die Komponente hinzugefügt habe) ein update() auf das Composite, zu dem es hinzugefügt werden soll. Allerdings passiert da nichts. Was muss ich denn machen, damit ich die Komponente dann auch angezeigt bekomme?
 

Fabio Hellmann

Erfahrenes Mitglied
Ok, es funktioniert jetzt. Bin erstaunlicherweiße doch noch auf eine halbwegs gute Lösung gekommen.

Man muss, wenn eine neue Komponente hinzugefügt wurde (ich habe eine Expandbar verwendet), die Parent-Komponente resizen.

Java:
expandItem.setHeight(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);

Ein update()-Aufruf oder sonstiges ist danach nicht mehr nötig.
 

Neue Beiträge