TextField を追加しようとしています。EditField _textBox = new EditField("Subject", "Some text");
ラベルがSubjectのテキストボックスを作成するために使用
しています。テキストボックスのラベル(件名)だけ色を変えたいです。
3 に答える
1
EditField
をオーバーライドしても のラベルの色を変更することはできないため、これを行うにはカスタム フィールドが必要になりますEditField.paint()
。
私の提案は次のとおりです。
CustomEditField
拡張するクラス (例: ) を作成します。HorizontalFieldManager
LabelField
これに、ラベルEditField
用と編集可能なテキスト用の2 つのフィールドを追加します。- 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 に答える