gpt4 book ai didi

java - 如何在 BlackBerry 中绘制实心正方形?

转载 作者:行者123 更新时间:2023-11-29 06:01:34 25 4
gpt4 key购买 nike

我正在制作一个 BlackBerry OS 6+ 应用程序,我需要绘制一个特定颜色的实心正方形(在运行时给定)但它应该可以添加到 VerticalFieldManager 。所以我认为使用 Graphics 对象自定义绘图不是一种选择。

我已经尝试将 LabelField 的背景颜色设置为我想要的颜色,并将该 LabelField 添加到 VerticalFieldManager。为了获得方形外观,我尝试覆盖 LabelFieldgetPreferredWidth()getPreferredHeight 以返回更高的值(例如:150) .但是,尽管宽度显示正确,但无论我返回什么值,高度都保持不变。

那么有什么办法可以做到这一点吗?总之,我想要的是:

  • 实心方形颜色 block (颜色在运行时决定)。
  • 应将其添加到 VerticalFieldManager

提前致谢!

最佳答案

试试这段代码,在构造函数中传入颜色。

import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.Graphics;

public class CustomField extends Field
{

private int backgroundColour;
private int fieldWidth;
private int fieldHeight;
private int padding = 8;

public CustomField(int color)
{
super(Field.FOCUSABLE);
fieldHeight = 100;
fieldWidth = 100;
this.setPadding(2, 2, 2, 2);
this.backgroundColour=color;
}

public int getPreferredWidth()
{
return fieldWidth;
}

public int getPreferredHeight()
{
return fieldHeight;
}

protected void layout(int arg0, int arg1)
{
setExtent(getPreferredWidth(), getPreferredHeight());
}

protected void drawFocus(Graphics graphics, boolean on)
{

}

protected void paint(Graphics graphics)
{
graphics.setColor(backgroundColour);
graphics.fillRect(0, 0, fieldWidth, fieldHeight);
}
}

关于java - 如何在 BlackBerry 中绘制实心正方形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9924179/

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