Class 代码名一个图形调用方法

Class 代码名一个图形调用方法,class,graphics,codenameone,Class,Graphics,Codenameone,我正在使用CN1 graphics完成我的第一个学习步骤 在start()方法中调用以下类的paint方法时遇到困难 在start()方法中,我调用如下方法: public void start() { DrawingCanvas drawingCanvas = new DrawingCanvas(); drawingCanvas.myMethod(g); } 我得到的错误消息是:找不到符号:变量g 在我的理解中,我现在必须以某种方式定义g 我

我正在使用CN1 graphics完成我的第一个学习步骤

在start()方法中调用以下类的paint方法时遇到困难

在start()方法中,我调用如下方法:

 public void start() {

     DrawingCanvas drawingCanvas = new DrawingCanvas();           
     drawingCanvas.myMethod(g);

 }
我得到的错误消息是:找不到符号:变量g

在我的理解中,我现在必须以某种方式定义g

我该怎么做

 Graphics g = 

您不能也不可以初始化图形。图形在Codename One内部创建,并作为回调传递给
paint
方法。您不应单独调用
paint(Graphics)


如果要调用
paint(Graphics)
可以调用
cmp.repaint()
,它将为您调用paint。请注意,您通常不需要调用它,因为paint在需要时会隐式调用,例如布局更改等。

Shai,谢谢。我不知道,我的问题是否清楚。如何在start方法中从另一个类调用公共void paint(Graphics g)?我不需要以某种方式初始化图形吗?我做不到:开始(图形g)。。。您的回答是否意味着我应该像这样在start方法中初始化图形:Graphic g=cmp.repaint()?顺便问一下,cmp是什么?
paint
是一种可以覆盖的
组件的方法。它是为您调用的,它是一个类似于
start()
的回调。您不需要调用`paint(Graphics),就像您不需要为按钮或图形调用它一样。请注意,在label类中,由于类中的更改而需要绘制时,我们只需调用repaint(),其余部分由系统完成……我想我知道误解的来源。可能是油漆法。我对问题进行了编辑,使之更清楚。如何调用start()中包含(图形g)的任何方法?我必须告诉系统变量g是什么,对吗?我必须这样定义变量:Graphics g=。。。。。。。。。。(如果我错了,请纠正我)我该怎么做?不,你不需要。Paint将自行调用。就像您从未调用
Label.paint(Graphics)
一样,它也会被调用并运行<代码>绘制(图形)
被隐式和间接调用。您可以通过调用
repaint()
请求绘制,此时系统将为您执行绘制。只需将
DrawingCanvas
添加到边框布局表单的中心并显示表单。
 Graphics g =