我正在尝试添加一个 TextField。我正在使用
EditField _textBox = new EditField("Subject", "Some text");
创建一个标签为Subject的文本框。我只想更改文本框标签(主题)的颜色。
问问题
758 次
3 回答
1
您将需要一个自定义字段来执行此操作,因为无法更改EditField
标签的颜色,即使您覆盖EditField.paint()
.
我的建议是:
- 创建一个
CustomEditField
扩展的类(例如)HorizontalFieldManager
- 为此添加 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 获得的任何其他特定方法,但作为概念证明,这是可行的。
于 2011-11-20T03:28:17.767 回答
0
您可以Override
使用该paint()
方法并可以调用该setColor(int RGB)
方法来提供您想要的颜色可能这会有所帮助
于 2011-11-19T11:11:03.693 回答
-2
EditField _textBox = new EditField("Subject","Some text")
{
public void paint(Graphics g)
{
getManager().invalidate();
g.setColor(_color);
super.paint(g);
}
}
于 2011-11-19T10:31:34.860 回答