调用自定义字段的绘制方法
问题描述:
我正在研究在屏幕上显示图表的应用程序。我制作了一个自定义字段,其绘制函数呈现图表。现在我想知道如何调用此函数以显示我的图表。我在这里附上了一个示例代码,但我看到的只是一个空白的白色屏幕。调用自定义字段的绘制方法
public class Graph extends MainScreen
{
class MyField extends Field
{
protected void layout(int w,int h)
{
setExtent(getWidth(),getHeight());
}
protected void paint(Graphics g)
{
//my graph is drawn here
}
public MyField()
{
paint(getGraphics());
}
}
public Graph()
{
VerticalFieldManager vfm=new VerticalFieldManager();
vfm.add(new MyField());
add(vfm);
}
}
答
有一两件事我注意到的是,你的getWidth()
和getHeight()
呼叫被用于设置的程度。在实际完成呼叫setExtent()
之前,getWidth()
和getHeight()
将返回0.您应该自行计算以确定Field的宽度和高度,然后设置该范围(只要它们小于最大值宽度和最大高度被传递到layout()
。此外,不必从构造函数调用paint()
,因为它所在的管理器将在需要绘制时为您打电话。