Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/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
仅更改Blackberry中TextField标签的颜色_Blackberry_Application Design_Blackberry Editfield - Fatal编程技术网

仅更改Blackberry中TextField标签的颜色

仅更改Blackberry中TextField标签的颜色,blackberry,application-design,blackberry-editfield,Blackberry,Application Design,Blackberry Editfield,我正在尝试添加文本字段。我正在使用 EditField\u textBox=新编辑字段(“主题”、“某些文本”)用于创建以标签为主题的文本框。我只想更改文本框标签(主题)的颜色 您可以覆盖paint()方法,并可以调用setColor(int RGB)方法来指定所需的颜色,这可能会有所帮助您需要一个自定义字段来完成此操作,因为无法更改编辑字段的标签颜色,即使覆盖EditField.paint() EditField _textBox = new EditField("Subject","Some

我正在尝试添加文本字段。我正在使用
EditField\u textBox=新编辑字段(“主题”、“某些文本”)用于创建以标签为主题的文本框。我只想更改文本框标签(主题)的颜色

您可以
覆盖
paint()
方法,并可以调用
setColor(int RGB)
方法来指定所需的颜色,这可能会有所帮助您需要一个自定义字段来完成此操作,因为无法更改
编辑字段的标签颜色,即使覆盖
EditField.paint()

EditField _textBox = new EditField("Subject","Some text")
{
public void paint(Graphics g) 
{
        getManager().invalidate();
        g.setColor(_color);
        super.paint(g);
}
}
我的建议是:

  • 创建一个类(例如,
    CustomEditField
    ),扩展
    HorizontalFieldManager
  • 为此添加两个字段,标签为
    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中需要的任何其他特定方法,但作为概念证明,这是有效的。

这不会同时更改标签和文本内容吗?问题是如何更改标签的颜色。为什么要使字段的管理器无效?这不是由字段决定其经理的字段是否无效。我没有答案,否则我将已经发布了。这不会同时更改标签和文本内容吗?问题是如何更改标签的颜色。