调用自定义字段的绘制方法

问题描述:

我正在研究在屏幕上显示图表的应用程序。我制作了一个自定义字段,其绘制函数呈现图表。现在我想知道如何调用此函数以显示我的图表。我在这里附上了一个示例代码,但我看到的只是一个空白的白色屏幕。调用自定义字段的绘制方法

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(),因为它所在的管理器将在需要绘制时为您打电话。