如何更改对象选择字段标题的颜色

时间:2013-11-21 20:14:17

标签: java blackberry eclipse-plugin

嗨有没有办法重写绘画,就像我用这个LabelField更改我的ObjectChoiceField的标题颜色。

LabelField f = new LabelField("Title "){
                    protected void paint(Graphics g) {
                          g.setColor(Color.RED); 
                          super.paint(g);
                      }
                };

我想更改“title”的字体颜色:

final String[] options={"1","2","3"};
final ObjectChoiceField ocf=new ObjectChoiceField("Title",options);

1 个答案:

答案 0 :(得分:1)

你几乎完全按照LabelField所做的那样做。您可以覆盖paint()并拨打Graphics#setColor()

   public class CustomColorChoiceField extends ObjectChoiceField {

      public CustomColorChoiceField(String label, Object[] choices, int initialIndex) {
         super("title", choices, initialIndex);
      }

      protected void paint(Graphics graphics) {
         int oldColor = graphics.getColor();
         graphics.setColor(Color.GREEN);
         super.paint(graphics);
         graphics.setColor(oldColor);
      }
   }

然后以正常方式将其添加到屏幕:

  add(new CustomColorChoiceField("title", choices1, 0));

注意:我实际上通常以这种方式使用ObjectChoiceField。我几乎总是在""(空字符串)作为标题传递。如果我确实想要标题/标签之类的东西,我通常会创建一个LabelField,然后将它放在我想要的位置。因此,如果您这样做,则根本不需要创建自己的ObjectChoiceField子类。只需将空字符串作为标题/标签传递到选择字段中,然后按照问题中的显示创建彩色LabelField

如果您有兴趣更改颜色或选项本身的其他属性(不是标题/标签),则see this recent Stack Overflow questioncheck out a blog post I wrote on this a long time ago