2009-07-01 12 views
4

Ich benutze SWT in Java und ich versuche, ein Bild und Text, die ich in einer SWT-Taste haben, links auszurichten. Es scheint, als sollte es ein einfacher button.setAlignment (SWT.LEFT) Aufruf sein, aber das funktioniert nicht. Eine schnelle Google-Suche lässt mich glauben, dass dies ein Bug im SWT-Framework sein könnte. Hat jemand Hilfe dabei?Ausrichten von Text und Bild in einer SWT-Taste?

+0

Für diejenigen mit diesem Problem, ich "löste es" durch Erweitern von SWT Composite und hatte, dass ein Label (das Bild) und eine Schaltfläche (die Schaltfläche mit Text) enthalten. Das Erweitern von SWT ist im Allgemeinen keine unterstützte Funktion, daher müssen Sie möglicherweise die checkSubclass() -Methode überschreiben. Nach Ansicht der SWT-Entwickler ist dies nicht unterstützt und möglicherweise unsicher, also seien Sie vorsichtig damit. – ARF

+0

Ein Beispielcode wäre nett für uns alle zu verwenden. Gerade jetzt, jeder von uns, der diesen Fix mögen möchte, muss das Rad neu erfinden. Außerdem verwende ich 4.3 Finale (5. Juni 2013) von vor einem Jahr, und immer noch kein Update. Niemand scheint in Eile zu sein, wenn man bedenkt, dass 5 Jahre seit diesem Post fast auf den Monat verstrichen sind. –

+0

Eine Alternative, die benutzerdefinierte Bemalung beinhaltet, ist hier beschrieben: http://StackOverflow.com/Questions/12834367/JavaSWT-Button-with-text-Over-Image (obwohl dies beschreibt den Text über ein Bild zu zeichnen, aber das Prinzip ist das gleiche) – mecsco

Antwort

3

Dies scheint eine SWT-Einschränkung (zumindest in Windows).

Vor 3.2 war es nicht möglich, sowohl ein Bild als auch einen Text auf einer Schaltfläche festzulegen. Beim Durchlesen dieser bug report wurde die Ausrichtung und relative Positionierung des Bildes zum Text diskutiert. Es scheint, dass die endgültige Implementierung einfach eine zentrierte Ausrichtung erzwang und das Bild links vom Text platzierte.

Es gab eine Verbesserungsanforderung, um diese Einschränkung zu beheben, but it was closed as WONTFIX for 3.3.

+0

Ja, das war es, was ich auch übrig hatte. Okay, ich werde damit gehen. Ich habe eine "Umgehung", die ich in einem Kommentar zu meiner Frage posten werde. – ARF