BlackBerry Field类扩展不会绘制

时间:2010-05-12 22:42:26

标签: java blackberry

使用JRE 5.0.0,模拟器设备是8520。

在屏幕上,我使用FlowFieldManager(Manager.VERTICAL_SCROLL)并向其添加字段以显示数据。

当我这样做时

this.flowManager = new FlowFieldManager(Manager.VERTICAL_SCROLL);
Field field = new Field()
{
    protected void paint(Graphics graphics)
    {
        graphics.drawTest("Test", 0, 0);
    }
    protected void layout(int width, int height)
    {
        this.setExtend(300, 300); // just testing
    }
}

this.flowManager.add(field);

屏幕呈现正确,屏幕上显示“测试”。

另一方面,如果我尝试将其抽象为具有相同属性的名为CustomField的类,并将其添加到流管理器中,则不会发生渲染。调试显示设备进入Object,进入布局功能,但不进入绘制功能。

当我扩展Field时,我无法弄清楚为什么不调用paint函数。 4.5 API说布局和绘图是我真正需要扩展的唯一函数。 (getPreferredWidth和getPreferredHeight将用于计算屏幕尺寸等。)

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果在绘制时,Field位于剪切区域之外,则不会指示绘制。这是我唯一能看到的错误。

因此,请确保您没有将此字段从某个屏幕滚动到屏幕上。