2010-05-12 40 views
1

使用JRE 5.0.0,模擬器裝置是8520黑莓Field類擴展功能將不會油漆

在我正在使用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的類並將其添加到流管理器,則渲染將不會發生。調試顯示設備進入對象,進入佈局功能,但不是繪製功能。

我不明白爲什麼在擴展字段時不會調用paint函數。 4.5 API說佈局和繪畫是我真正需要擴展的唯一功能。 (getPreferredWidth和getPreferredHeight將用於計算屏幕尺寸等)

在此先感謝。

回答

2

如果在繪圖時字段位於裁剪區域之外,將不會指示繪畫。這是我唯一可以看到的錯誤。

因此,請確保您沒有將此字段從某處滾動到屏幕上。

+0

謝謝,就是這樣。太高。 – jlindenbaum 2010-05-12 23:29:08