2010-12-10 11 views
3

Ich möchte ein Standard-SWT-Label stilisieren, indem ich ihm einen festen Rahmen gebe und eine Farbe für diesen Rand auswähle. Ich kann keinen Weg finden, dies zu tun, indem ich online nachschaue. Wird das überhaupt unterstützt? Alles, was ich tun kann, ist, einfach den SWT.BORDER-Stil anzuwenden, der ein 3D-Effekt-Rand ist, den ich anscheinend kaum kontrollieren kann.Wie kann ich einem Etikett in SWT einen durchgezogenen Linienrand hinzufügen und die Farbe des Rahmens ändern?

Antwort

2

JFace Forms bieten das in der FormToolkit. Siehe here.

Die private Klasse BorderPainter (Zeilen 106-165) macht das, was Mario bereits in seiner Antwort beschrieben hat: benutzerdefiniertes Zeichnen eines Rahmens um Ihr Widget. Um es funktioniert, müssen Sie den BorderPainter hinzufügen, die ein PaintListener ist, um das Widget der Eltern finden paintBordersFor(.) in Zeile 798.

ich nicht empfehlen würde JFace Formen als Abhängigkeit hinzufügen, wenn Sie brauchen nur die Grenzmaler - viel zu schwer. Aber dieser Code sollte dir weiterhelfen.

+7

Die Verbindung ist unterbrochen. – Mot

2

Fügen Sie Ihrem Label einen PaintListener hinzu. Rufen Sie auf der Listener-Methode paintControl den GC des generierten Ereignisses ab und zeichnen Sie damit ein Rechteck mit derselben Form wie Ihr Label.

Sie können in der Tat etwas über Ihr Label zeichnen.

Verwandte Themen