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!
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.
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%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.
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.
Tags und Links java user-interface swt colors