2016-08-02 9 views
1

Wie lege ich die Farbe der Steuerung der Radio-Taste fest? Egal, welche Farbe ich im Style anlege, es zeichnet den äußeren Kreis und die innere Kugel schwarz. Ich möchte, dass es in weiß auf schwarzem Hintergrund gezeichnet wird, um zu meinem Thema zu passen, aber es wird immer schwarz gezeichnet. (Ich mache das eigentlich in einem Multi-Knopf, um die Farbe des Emblem UIID Einstellung.)Wie lege ich die Farbe der Steuerung des Radio-Buttons fest?


habe ich versucht, den ersten Vorschlag, um die Konstanten zu definieren. Das hat nicht funktioniert. Hier ist was passiert ist.

Ich versuchte es auf zwei Arten. Zuerst habe ich nur radioSelectedImage und radioUnsectedImage definiert. Als das nicht funktionierte, fügte ich beide Radio * DisImage-Werte hinzu, aber es tat dasselbe. Die ausgewählten und nicht ausgewählten Bilder funktionierten gut, aber sobald ich einen Radioknopf berührte, bekam er den Fokus, und der Knopf wurde in Schwarz gezeichnet, was ihn vor meinem schwarzen Hintergrund unsichtbar machte.

Ich fand einen Ansatz, der funktionierte, aber es erforderte die Verwendung von zwei veralteten Klassen. Hier ist, was ich in die init() Methode meiner Hauptklasse hinzugefügt:

LookAndFeel lookAndFeel = UIManager.getInstance().getLookAndFeel(); 
    if (lookAndFeel instanceof DefaultLookAndFeel) { 
     DefaultLookAndFeel defaultLookAndFeel = (DefaultLookAndFeel) lookAndFeel; 
     Image sel = theme.getImage("RadioButtonSelected.png"); 
     Image unSel = theme.getImage("RadioButtonUnselected.png"); 
     defaultLookAndFeel.setRadioButtonImages(sel, unSel, sel, unSel); 
     defaultLookAndFeel.setRadioButtonFocusImages(sel, unSel, sel, unSel); 
    } 

Der Unterschied hier ist, dass ich einen Weg, um die Fokusbilder einzustellen. Ich kann das nicht mit den Konstanten machen, weshalb es wahrscheinlich nicht funktioniert. Ich würde lieber keine veralteten Klassen verwenden.

+0

Hat Ihr Thema haben die 'includeNative' Option? Definiert Ihr Theme das Radiobutton-Bild in den Theme-Konstanten? –

+0

Ich habe in beide Richtungen includeNativeBool versucht, und es machte keinen Unterschied. Wie ich in meinem Anhang erwähnt habe, habe ich die radio * Konstanten in meinem Thema definiert, aber sie gelten nicht, wenn die Schaltfläche den Fokus hat. – MiguelMunoz

+0

Als Experiment habe ich den Aufruf von setRadioButtonFocusImages() entfernt. Es verhält sich genauso wie wenn ich nicht die veralteten Klassen benutzt habe, sondern die vier radio * -Konstanten definiert habe. – MiguelMunoz

Antwort

1

Es gibt Themen Konstanten, damit Sie Bilder auf den Radioknopf für nicht ausgewählte hinzuzufügen, ausgewählt, usw. Schauen Sie hier ...

https://www.codenameone.com/manual/advanced-theming.html

+0

Zuerst möchte ich sagen, dass es im Ressourceneditor einen kleineren Fehler gibt. Wenn ich einen Wert für eine der 4 Radio * -Konstanten festlege, wird der gewählte Wert nicht im Editor angezeigt. Stattdessen heißt es [Standardwert]. Das ist unbedeutend, denn wenn ich den Ressourceneditor beende und neu starte, werden mir die Bilder angezeigt, die ich ausgewählt habe. Es funktioniert jedoch nicht in meiner App, wie ich in meinem nächsten Kommentar beschreiben werde. – MiguelMunoz

+0

Okay, ich stelle es stattdessen in die Beschreibung oben. – MiguelMunoz

+0

Dieser kleinere Fehler im Ressourceneditor war eine Art Fehler. Ich konnte es nicht reproduzieren. – MiguelMunoz

Verwandte Themen