gpt4 book ai didi

user-interface - 黑莓 - 设置 LabelField 背景颜色

转载 作者:行者123 更新时间:2023-12-01 09:10:42 27 4
gpt4 key购买 nike

我想在具有爱丽丝蓝色背景的 MainScreen 上放置几个带有右对齐文本的 LabelField。不幸的是,我似乎无法弄清楚如何做到这一点。

我能做的最好的事情是在 MainScreen 上将背景设置为 Color.ALICEBLUE 并将 LabelFields 放置在屏幕上(也具有爱丽丝蓝色背景)。

    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 版本中,您可以使用覆盖的 paint() 创建 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:

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));
}
}

BB KB DB-00131 - How to - Change the background color of a screen

关于user-interface - 黑莓 - 设置 LabelField 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1257230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com