Ändern der Hintergrundfarbe org.eclipse.swt.widgets in Windows

7

Im Moment versuche ich die Hintergrundfarbe einer org.eclipse.swt.widgets.Button mit dem folgenden Code zu ändern:

%Vor%

Das funktioniert einwandfrei, wenn ich das Programm unter Solaris ausführe, aber nichts, wenn ich den Code in Windows ausführe. Ist das möglich? Wenn nicht, gibt es eine Art Workaround, die es mir erlauben würde, die Hintergrundfarbe zu ändern (selbst wenn die "Farbe" ein Bild ist), während immer noch Text in der Schaltfläche angezeigt wird? Danke!

    
Dorrene Brown 22.07.2010, 18:27
quelle

4 Antworten

5

Sie können nicht. In der Dokumentation der Methode Control.setBackground() wird dies erwähnt :

For example, on Windows the background of a Button cannot be changed.

    
True Soft 22.07.2010, 18:34
quelle
12

Bei Windows-Betriebssystemen funktioniert button.setBackGround nicht direkt. Ein kleines Code-Snippet kann helfen. Überschreiben Sie das Paint-Ereignis der Schaltfläche wie folgt: -

----- obj ist der Name der Schaltfläche im unteren Ausschnitt ------------

%Vor%     
Shishir Pandey 26.11.2012 09:15
quelle
4

Der Hintergrund einer Schaltfläche in Windows wird außerhalb von SWT festgelegt.

Klicken Sie mit der rechten Maustaste auf Ihren Desktop, und klicken Sie auf Eigenschaften.

Gehen Sie zur Registerkarte "Darstellung".

Klicken Sie auf "Erweitert".

Ich glaube, "3D-Objekte" bestimmen den Hintergrund der Schaltfläche. Dies wird durch das Thema jedes Benutzers bestimmt.

Eine großartige Sache bei SWT ist die Verwendung der zugrunde liegenden System-Widgets und -Themen. Eine frustrierende Sache über SWT ist die Verwendung der zugrunde liegenden System Widgets und Themen.

    
Zoot 18.10.2010 22:09
quelle
1

Sie können eine Schaltfläche mit CLabel simulieren. Fügen Sie einen Maus-Listener hinzu, um den Hintergrund zu ändern, wenn Sie die Maus nach unten und oben bewegen, und im Mouse-Up-Ereignis ein Auswahl-Listener-Ereignis senden, so dass es sich wie eine Schaltfläche verhält. Zum Beispiel:

%Vor%

Dies ändert kurz den Hintergrund der Schaltfläche, während Sie die Maus drücken, um den Effekt eines Klickens auf eine Schaltfläche zu erzielen. CLabel kann im Gegensatz zu anderen SWT-Widgets auch erweitert werden, sodass Sie eine Unterklasse erstellen können, wenn Sie dies häufig tun müssen.

    
ctg 04.04.2016 20:38
quelle

Tags und Links