RCP Scale (SWT)

WyattEarp

Mitglied
Hallo,

ich möchte in einer RCP-Anwendung einen Schieberegler (SWT.Scale) einbauen. Dieser funktioniert auch wunderbar, ist nur leider zu groß. Wie kann ich die Höhe und die Breite eines solchen Objekts anpassen? Ein Aufruf der Methode "scaleObject.size(height x, width y)" hat leider absolut garnichts bewirkt. In Sachen Höhe soll mein Schieberegler genau so hoch wie ein Standard-Text-Objekt (SWT.Text) sein. Nachfolgend der Code für meinen Regler:

Java:
scaleSimilarity = new Scale(compOptions, SWT.HORIZONTAL);
scaleSimilarity.setToolTipText("abcd");
scaleSimilarity.setSize(1, 1); //ohne Wirkung
scaleSimilarity.setMaximum(2);
scaleSimilarity.setPageIncrement(1);

Hat jemand einen Tipp für mich?
 

Sonecc

Gesperrter Benutzer
Das Scale erhält die Größe, die es vom Layout zugewiesen bekommt.

Die Frage ist also, welches Layout du verwendest.
 

WyattEarp

Mitglied
Ich habe dem Scale noch folgendes Layout mitgegeben:
Code:
scaleSimilarity.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1));

Mein Textfeld sieht folgendermaßen aus und hat die gewünschte Größe:
Java:
txtFilter = new Text(compOptions, SWT.BORDER);
txtFilter.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
txtFilter.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
txtFilter.setEditable(true);

Untergebracht sind beide Objekte in einem Composite mit folgendem Layout:
Code:
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));

Einen Screenshot beider Felder habe ich angehängt. Man sieht deutlich, dass das Scale größer ist.
 

Anhänge

  • text_scale.jpg
    text_scale.jpg
    6,6 KB · Aufrufe: 29

Sonecc

Gesperrter Benutzer
Die GridData Elemente sind unglücklich konfiguriert.
Du solltest die Werte für grabExcessXXXSpace prüfen

Wenn du die Höhe begrenzen willst, kannst du es mit GridData.widthHint probieren
 

Neue Themen


Oben