SWT Composite braucht mehr Platz als Bildschirmauflösung

Luxor

Mitglied
Hallo,

wieder einmal eine Frage zu SWT - hoffe dass das einer beantworten kann. Ich erstelle ei n GUI in SWT nur mit Gridlayout-Manager.
Kurz gesagt ich lege mehrere Composites aufeinander um alles an der gewünschten Position zu bekommen. Bei TabFolder sieht das ungefähr so aus:
Code:
TabFolder tabFolder = new TabFolder(parentcomposite, SWT.NONE);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
GridData gd = new GridData();
gd.grabExcessHorizontalSpace = true;
tabFolder.setLayout(gridLayout);		
tabFolder.setLayoutData(gd);
TabItem tab = new TabItem(tabFolder, SWT.NONE);
tab.setText("Tab X");
Composite composite = new Composite(tabFolder, SWT.NULL);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
GridData gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
composite.setLayout(gridLayout);
composite.setLayoutData(gd);
... Fülle composite mit Group, Buttons, Table usw.
Okay der Code ist nun aus mehrern Methoden zusammengestückelt aber er sollte es veranschaulichen. Mein Problem ist dass ich ab 2 Widgets auf der Composite einen Platzverbrauch habe der mein Bildschirmauflösung übersteigt, d.h. es dehnt sich weiter nach rechts und/oder nach unten aus als das Fenster platz zur Verfügung hat.
Ich hab keine Ahnung wie ich das Problem lösen kann. Mit der Methode setSize(int with, int height) und computeSize(..) lässt sich der TabFolder nicht dazu bewegen weniger Platz zu verbrauchen.
Wenn einer eine Idee hat, auch wildes Spekulieren wäre mir willkommen - ich hab die ganze Woche rumgefriemelt und seh den Wald vor lauter Bäumen nicht mehr.

Gruß

Luxor
 
Thomas Darimont hat gesagt.:
Hallo!

Wie wär's denn mit einem ScrolledComposite?

Gruß Tom
Kannst du mir ein Beispiel (einen Link oder so) geben wo eine Tabfolder + ScrolledComposite+Composite+ mehr als 1 Button verwendet wird?
Bei den Snippets funktionierts ja immer schön, weil es der einfachste Fall ist.
Leider ist da aber entweder TabFolder oder ScrolledComposite verwendet worden.

Gruß

Luxor
 
Zurück