| 

.NET C# Java Javascript Exception

Antwort #A16371 zur Frage #F490: Text innerhalb SWT Spinner positionieren

Diese Antwort hat bisher 2 Versionen. Frage #F490: Text innerhalb SWT Spinner positionieren - Antwort #A16371


Version 2
13.07.2011 18:55:25
Dies ist die aktuelle Version
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!
wlami 736 1 7
Version 1
13.07.2011 18:54:59
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!
wlami 736 1 7