【问题标题】:Change color of only the label for TextField in Blackberry仅更改 Blackberry 中 TextField 的标签颜色
【发布时间】:2011-11-19 10:26:16
【问题描述】:

我正在尝试添加一个 TextField。我在用 EditField _textBox = new EditField("Subject", "Some text"); 用于创建标签为 Subject 的文本框。我只想更改文本框标签(主题)的颜色。

【问题讨论】:

    标签: blackberry application-design blackberry-editfield


    【解决方案1】:

    您将需要一个自定义字段来执行此操作,因为无法更改 EditField 标签的颜色,即使您覆盖 EditField.paint()

    我的建议是:

    • 创建一个扩展HorizontalFieldManager的类(例如CustomEditField
    • 为此添加 2 个字段,LabelField 用于标签,EditField 用于可编辑文本
    • 覆盖LabelField 的paint() 方法以设置您想要的颜色。

    代码如下:

    import net.rim.device.api.ui.component.EditField;
    import net.rim.device.api.ui.component.LabelField;
    import net.rim.device.api.ui.container.HorizontalFieldManager;
    import net.rim.device.api.ui.Graphics;
    
    public class CustomEditField extends HorizontalFieldManager{
    
        private static final int COLOR = 0x00FF0000; //colour for the label 
        private LabelField labelField; //for the label
        private EditField editField; //for the editable text
    
        public CustomEditField(String label, String initialValue){
    
            labelField = new LabelField(label){
    
                public void paint(Graphics g){
    
                g.setColor(COLOR);
                    super.paint(g);
                }
    
            };
    
            editField = new EditField("", initialValue); //set the label text to an empty string
    
            add(labelField);
            add(editField);     
        }   
    }
    

    当然,您仍然需要添加方法来设置和获取 EditField 中的文本,以及您需要从 EditField 中获取的任何其他特定方法,但作为概念证明,这是可行的。

    【讨论】:

      【解决方案2】:

      你可以Overridepaint()方法,也可以调用setColor(int RGB)方法给你想要的颜色可能会有所帮助

      【讨论】:

      • 这不会同时改变标签和文本内容吗?问题是如何改变标签的颜色。
      【解决方案3】:
      EditField _textBox = new EditField("Subject","Some text")
      {
      public void paint(Graphics g) 
      {
              getManager().invalidate();
              g.setColor(_color);
              super.paint(g);
      }
      }
      

      【讨论】:

      • 这不会同时改变标签和文本内容吗?问题是如何改变标签的颜色。
      • 为什么要使字段管理器无效?其经理的字段是否无效由字段决定
      • 我没有答案,否则我早就贴出来了。
      猜你喜欢
      • 2020-07-08
      • 2021-08-23
      • 1970-01-01
      • 2022-08-15
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      相关资源
      最近更新 更多