SWT - Combo - Größe ändern?

Trash

Erfahrenes Mitglied
moin,
wenn ich eine leere Combo zu Beginn habe ist diese total klein. Wenn ich nun Elemente lese, die dann in die Combo gesteckt werden, passt sich die Größe jedoch nicht den Inhalten an. Man kann diese zwar per Klick auswählen, jedoch ändert sich die Box nicht.

Deshalb meine Frage: Wie kann ich die Größe einer ComboBox von Anfang an einstellen oder: Wie kann ich diese so aktualisieren, dass sich die Größe den Elementen anpasst.

Falls jemand weiß was der ComboViewer in JFace macht und ob man diesen mit der Combo verknüpfen sollte, dem wäre ich auch dankbar.

Danke!
 
...
Deshalb meine Frage: Wie kann ich die Größe einer ComboBox von Anfang an einstellen oder: Wie kann ich diese so aktualisieren, dass sich die Größe den Elementen anpasst.
...

Hallo,
das müßtest Du mittels setSize() machen können.
Code:
Combo combo = new Combo (shell, SWT.READ_ONLY);
combo.setSize (200, 200);
 
jo! Das dachte ich auch, aber kann es sein, dass mein GridLayout oder irgendwas ein "limit" setzt ? weil wenn ich setSize(200,200) mache, ändert sich nichts!
 
Hmm eigentlich nicht, aber ich kenen Deinen Code auch nicht. Du kannst dem Combo auch ein eigenes Gridlayout verpassen und ihm darüber die Breite angeben...

Code:
combo = new Combo(shell, SWT.NONE);
final GridData gd_combo = new GridData(SWT.CENTER, SWT.CENTER, true, false);
gd_combo.widthHint = 250;  // HIER bestimmst Du die Breite der Combo-Box
combo.setLayoutData(gd_combo);
 
Wenn du neue Elemente hinzufügst musst du danach einmal pack auf der ComboBox aufrufen, damit diese sich den neuen Elementgrößen anpassen kann. Ansonsten auf der GridData der Combobox minimumSize setzen. widthHint schränkt das Layout meist zu stark ein.
 
Okay, das probiere ich gleich mal! Und wie kann ich den TreeViewer automatisch auf eine Größe festlegen, weiß das auch jemand?

edit: Pack() hat super funktioniert. Danke

Bei meinem TreeViewer sieht es so aus:
Code:
 		GridLayout iOLayoutListe = new GridLayout(1, true);
 		iOLayoutListe.numColumns = 1;
 		GridData iODataListe = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
 		iODataListe.horizontalSpan = 2;
		iODataListe.minimumWidth = 200;

 			Group grList = new Group(composite, SWT.NULL | SWT.HORIZONTAL);
 			grList.setText("Meine CDs");
 			grList.setLayout(iOLayoutListe);
 			grList.setLayoutData(iODataListe);

 			 			
 	  		treeViewer = new TreeViewer(grList);
 	  		treeViewer.setContentProvider(new ContentProvider());
 	 		treeViewer.setLabelProvider(new LabelProvider());
Die Group ist viel größer als der TreeViewer...aber wieso ?
 

Anhänge

  • Bild 1.jpg
    Bild 1.jpg
    45,6 KB · Aufrufe: 133
Zuletzt bearbeitet:
Zurück