Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codenameone 如何设置单选按钮的颜色';谁来控制?_Codenameone - Fatal编程技术网

Codenameone 如何设置单选按钮的颜色';谁来控制?

Codenameone 如何设置单选按钮的颜色';谁来控制?,codenameone,Codenameone,如何设置单选按钮控件的颜色?无论我在样式中指定什么颜色,它都会用黑色绘制外圆和内项目符号。我希望它在黑色背景上以白色绘制以匹配我的主题,但它总是以黑色绘制。(我实际上是在一个多按钮中进行此操作,设置徽章UIID的颜色。) 我尝试了第一个建议,定义常数。那没用。事情是这样的 我试了两种方法。首先,我定义了radioSelectedImage和radioUnselectedImage。当这不起作用时,我添加了两个radio*DisImage值,但它做了相同的事情。选中和未选中的图像都很好,但我一按

如何设置单选按钮控件的颜色?无论我在样式中指定什么颜色,它都会用黑色绘制外圆和内项目符号。我希望它在黑色背景上以白色绘制以匹配我的主题,但它总是以黑色绘制。(我实际上是在一个多按钮中进行此操作,设置徽章UIID的颜色。)


我尝试了第一个建议,定义常数。那没用。事情是这样的

我试了两种方法。首先,我定义了radioSelectedImage和radioUnselectedImage。当这不起作用时,我添加了两个radio*DisImage值,但它做了相同的事情。选中和未选中的图像都很好,但我一按单选按钮,它就获得了焦点,按钮被画成了黑色,这使得它在我的黑色背景下不可见

我确实找到了一种有效的方法,但它需要使用两个不推荐的类。下面是我添加到主类的init()方法中的内容:

    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);
    }

这里的不同之处在于我有一种设置聚焦图像的方法。我不能用常数来做这件事,这可能就是它不起作用的原因。我真的不想使用不推荐的类。

有一些主题常量,允许您将图像添加到单选按钮中,用于未选择、已选择等。请看这里


您的主题是否有
includenactive
选项?你的主题是否定义了主题常量中的单选按钮图像?我尝试了两种方法,但没有任何区别。正如我在附录中指出的,我的主题中确实定义了radio*常量,但当按钮具有焦点时,它们不适用。作为一个实验,我删除了对setRadioButtonFocusImages()的调用。它的行为方式与我没有使用不推荐的类时完全相同,但定义了四个radio*常量。如果您确实有这些常量,则需要定义它们:
radioSelectedImage
radioSelectedFocusImage
radioUnselectedFocusImage
radioUnselectedFocusImage
radioSelectedDisFocusImage
radioSelectedDisFocusImage
radioUnselectedDisFocusImage
。谢谢。手册的“高级主题化”部分中没有记录四个内有“焦点”的常量,资源编辑器也没有提供这些常量。添加它们可能是个好主意。他们工作得很好。我能够删除不推荐使用的代码。首先,让我说资源编辑器中有一个小错误。当我为4个Radio*常量中的任何一个指定值时,所选的值不会显示在编辑器中。相反,它说的是[默认值]。这是次要的,因为当我退出资源编辑器并重新启动它时,它会显示我选择的图像。但是,它在我的应用程序中不起作用,我将在下一篇评论中描述。好的,我把它放在顶部的描述中。资源编辑器中的那个小错误是某种小故障。我无法复制它。