2009-07-01 4 views
4

J'utilise SWT en Java et j'essaie d'aligner à gauche une image et un texte que j'ai à l'intérieur d'un bouton SWT. Il semble que ce devrait être un simple appel button.setAlignment (SWT.LEFT), mais cela ne fonctionne pas. Une recherche rapide sur Google me porte à croire que cela pourrait être un bug dans le framework SWT. Est-ce que quelqu'un a de l'aide à ce sujet?Aligner le texte et l'image dans un bouton SWT?

+0

Pour ceux qui ont ce problème, j'ai "résolu" en étendant SWT Composite et avait une étiquette (l'image) et un bouton (le bouton avec du texte). L'extension de SWT n'est généralement pas une fonctionnalité prise en charge. Vous devrez peut-être remplacer la méthode checkSubclass(). Encore une fois, selon les développeurs de SWT, ce n'est pas pris en charge et potentiellement dangereux, alors tenez-en compte. – ARF

+0

Un exemple de code serait bien pour nous tous. En ce moment, n'importe lequel d'entre nous qui voudrait cette solution, doit réinventer la roue. En outre, j'utilise la version 4.3 finale (5 juin 2013) d'il y a un an, et toujours pas de mise à jour. Personne ne semble être pressé vu que 5 ans ont passé depuis ce poste, presque au mois. –

+0

Une alternative qui implique la peinture personnalisée est décrite ici: http://stackoverflow.com/questions/12834367/java-swt-button-with-text-over-image (même si cela décrit dessiner le texte au-dessus d'une image, mais le principe c'est pareil) – mecsco

Répondre

3

Cela semble être une limitation SWT (au moins dans Windows).

Avant 3.2, il n'était pas possible de définir une image et un texte sur un bouton. En lisant ce bug report, on discute de l'alignement et du positionnement relatif de l'image par rapport au texte. Il semble que l'implémentation finale ait simplement forcé l'alignement du centre et placé l'image à gauche du texte.

Il y avait une demande d'amélioration pour corriger cette limitation, but it was closed as WONTFIX for 3.3.

+0

Ouais, c'était aussi ce qu'il me restait. D'accord, je vais aller avec ça. J'ai un "work-around" que je vais poster dans un commentaire à ma question. – ARF

Questions connexes