>MIDPのCanvasにgetGraphicsは無いけど、
>一回paintの引数のGraphicsを適当な変数つけて扱ったら?・・と思ったけど
>Graphics exg;
>〜paint(Graphics g){
> exg=g;
> 略
>}
>exg.draw〜
>これではexgに変更があった時毎回必ず実際の画面も変わるという訳じゃなさそうなので使えないかも。

公開されてるアプリでに、同じことやってる例は結構あるっぽい…
試した限り、エミュでも何でもこれで動作がおかしくなった事は一度もないけど、
本来これが動くかどうかって、実装依存だよな。

ごく小さなアプリ内で、プログラムが描画部と本体の2つに分かれてしまうのは面倒なんだけど、
潔くあきらめた方がスッキリするよ…。

その際、paint() をカラ実装にするよりは、paint()の中身の書き直しを考える必要があるかも。
ことVアプリに言えることなんだけど、suspend 時に仮想画面の中身が失われてしまうので
仮想画面含めた全画面の再描画の必要があるか、部分書き換えで済むかを
本体側で管理してやる必要が(主に速度面から)出てくるはず。
再描画の必要なし(描画コンテキストに更新が無いのにpaint()が呼ばれた)なら、
何もせずに抜ける、とか仕込んでやろう。

それでも出てくるラベルの点滅を抑えるには、ラベルのaddとremove自体を呼ばない様にするのが一番の薬。