【问题标题】:How do I set the color of the radio button's control?如何设置单选按钮控件的颜色?
【发布时间】:2016-08-04 06:03:19
【问题描述】:

如何设置单选按钮控件的颜色?无论我在样式中指定什么颜色,它都会用黑色绘制外圆和内子弹。我希望它在黑色背景上以白色绘制以匹配我的主题,但它总是以黑色绘制。 (我实际上是在 Multi-Button 中执行此操作,设置 Emblem 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);
    }

这里的区别在于我有一种设置焦点图像的方法。我不能使用常量来做到这一点,这可能是它不起作用的原因。我真的不想使用已弃用的类。

【问题讨论】:

  • 您的主题是否有includeNative 选项?您的主题是否在主题常量中定义了单选按钮图像?
  • 我尝试了 includeNativeBool 两种方式,但没有任何区别。正如我在附录中指出的那样,我确实在我的主题中定义了 radio* 常量,但是当按钮具有焦点时它们不适用。
  • 作为一个实验,我删除了对 setRadioButtonFocusImages() 的调用。它的行为与我不使用不推荐使用的类时的行为完全相同,但定义了四个 radio* 常量。
  • 如果你有常量,那么你需要定义所有常量:radioSelectedImageradioSelectedFocusImageradioUnselectedImageradioUnselectedFocusImageradioSelectedDisImageradioSelectedDisFocusImageradioUnselectedDisImage , radioUnselectedDisFocusImage.
  • 谢谢。内部带有“Focus”的四个常量没有记录在手册的“高级主题”部分中,也不是资源编辑器提供的选择。添加它们可能是个好主意。他们工作得很好。我能够删除已弃用的代码。

标签: codenameone


【解决方案1】:

有主题常量允许您将图像添加到未选中、选中等的单选按钮。看这里...

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

【讨论】:

  • 首先,让我说资源编辑器中有一个小错误。当我为 4 个 Radio* 常量中的任何一个指定值时,所选值不会显示在编辑器中。相反,它说[默认值]。这是次要的,因为当我退出资源编辑器并重新启动它时,它会显示我选择的图像。但是,正如我将在下一条评论中描述的那样,它在我的应用中不起作用。
  • 好的,我把它放在顶部的描述中。
  • 资源编辑器中的那个小错误是某种故障。我无法重现它。
猜你喜欢
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
相关资源
最近更新 更多