| 

.NET C# Java Javascript Exception

2
Hallo zusammen,

in einem org.eclipse.swt.widgets.Spinner wird die eingegebene Zahl immer links oben im Spinner selbst positioniert. Weiß jemand, wie man das ändern kann? Ich möchte den Text rechts zentriert darstellen. Die API bietet nichts an und über Google konnte ich auch nichts finden.

Danke und schöne Grüße,
LastFreeNickname
01.03.2010
LastFreeNickname 316 1 7
1 Antwort
0
Es gibt die Möglichkeit die Textausgabe des Spinners auf SWT.RIGHT_TO_LEFT zu setzen, dies entspricht dann der Textausgabe, wie sie auch bei z.B. arabischer Schrift verwendet wird.

Beispiel:
/**
* Create contents of the window.
*/
protected void createContents() {
shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
spinner = new Spinner(shell, SWT.BORDER | SWT.RIGHT_TO_LEFT);
spinner.setBounds(35, 84, 47, 22);
}


Dabei wird aber lediglich das Layout des Spinners gespiegelt, das Ergebnis sieht so aus:


Ich habe gerade mal in den Quellcode des Spinners geschaut. Es ist nicht vorgesehen, dass man einstellen kann, dass der Text links-, rechtsbündig oder zentriert dargestellt wird. Im Gegensatz zum "Text"-Widget, welches eine Prüfung auf "SWT.RIGHT" durchführt, ignoriert der Spinner dieses Attribut.

Dir bleibt also, sofern Du dieses Verhalten brauchst, nichts übrig, als an den Original-Sourcen rumzuspielen. Denn Subclassing ist bei SWT "verboten", bzw. wird unterbunden. Es gibt da zwar einen Weg drumherum, aber spätestens der Classloader meckert dann rum, da dein Code falsch signiert ist.

Wie Du an die SWT-Sourcen rankommst wird hier beschrieben.

Viel Erfolg!
13.07.2011
wlami 736 2 8
wlami 736 2 8

Stelle deine Java-Frage jetzt!