ブラックベリー - labelFieldプロパティの背景色を設定します
-
12-09-2019 - |
質問
私はアリス青色の背景色のMainScreenに右揃えのテキストで数LabelFieldsを配置します。残念ながら、私はそれが起こるようにする方法を見つけ出すように見えることはできません。
私は、画面上のMainScreenと場所LabelFieldsにColor.ALICEBLUEに私のbackroundのを設定して行うことができる最高の(もアリスブルーの背景色)。
public void paint(Graphics graphics) {
graphics.setBackgroundColor(Color.ALICEBLUE);
graphics.clear();
super.paint(graphics);
}
と...
LabelField display = new LabelField("", LabelField.FIELD_RIGHT){
public void paint(Graphics graphics) {
graphics.setColor(Color.DIMGRAY);
graphics.setBackgroundColor(Color.ALICEBLUE);
graphics.clear();
super.paint(graphics);
}
};
MainScreenペイントルーチンをオーバーライド私に私アリスブルーの背景を与えるが、LabelFields'ペイントルーチンをオーバーライドすることは適切であるとは思えません。結果は、ラベルテキストの後ろにアリス青色の背景と、白い行です。 USE_ALL_WIDTH
を追加すると、バックグラウンドの問題を修正したが、私は右のUSE_ALL_WIDTH
と揃わないことができます。
誰もがこのための回避策を知っていますか?
解決
バージョン<= 4.5では、あなたが(オーバーライド塗料でVerticalFieldManagerを作成することができます):
class BGManager extends VerticalFieldManager {
public BGManager() {
super(USE_ALL_HEIGHT|USE_ALL_WIDTH);
}
public void paint(Graphics graphics)
{
graphics.setBackgroundColor(Color.DARKRED);
graphics.clear();
super.paint(graphics);
}
}
そして、それに簡単なlabelFieldプロパティを追加することyoureの画面上でそれを使用します:
class Scr extends MainScreen {
BGManager manager = new BGManager();
public Scr() {
super();
add(manager);
manager.add(new LabelField("Hello!", FIELD_RIGHT));
manager.add(new LabelField("This is a test", FIELD_RIGHT));
}
}
バージョン> = 4.6ではデフォルトの画面マネージャのsetBackgroud()メソッドを使用することができます
class Scr extends MainScreen {
public Scr() {
super();
VerticalFieldManager manager =
(VerticalFieldManager)getMainManager();
manager.setBackground(
BackgroundFactory.createSolidBackground(
Color.DARKRED));
manager.add(new LabelField("Hello!", FIELD_RIGHT));
manager.add(new LabelField("This is a test", FIELD_RIGHT));
}
}
<のhref = "http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800505/800256/How_to_-_Change_the_background_color_of_a_screen.html?nodeid=800335&vernum=0" のrelを参照してください。 = "noreferrer"> BB KB DB-00131 - どのように - 画面での背景色を変更します。
他のヒント
使用
new LabelField("",LabelField.USE_ALL_WIDTH | DrawStyle.RIGHT);
labelFieldプロパティのpaintメソッドをオーバーライドなしています。