Используя 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);
Экран отображается правильно, и на экране отображается «Test».
Если, с другой стороны, я попытаюсь абстрагировать это в класс с именем CustomField с теми же свойствами и добавить его в диспетчер потоков, рендеринг не произойдет. Отладка показывает, что устройство входит в объект, в функцию макета, но не в функцию рисования.
Я не могу понять, почему функция рисования не вызывается при расширении поля. 4.5 API говорит, что макет и рисование - единственные функции, которые мне действительно нужно расширить. (getPreferredWidth и getPreferredHeight будут использоваться для расчета размеров экрана и т. д.)
Заранее спасибо.