仅更改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中需要的任何其他特定方法,但作为概念证明,这是有效的。这不会同时更改标签和文本内容吗?问题是如何更改标签的颜色。为什么要使字段的管理器无效?这不是由字段决定其经理的字段是否无效。我没有答案,否则我将已经发布了。这不会同时更改标签和文本内容吗?问题是如何更改标签的颜色。