2017-04-05 10 views
0

私は自分自身にアナログ時計をコード化しようとしています。SWTです。私はそれを1つの時点で描画することができました。コントロールが再描画するまで、すべてがうまく機能します。
"古い図面"は図面イベントを通じて永続的で、削除する方法が見つからないようです。理想的なのは、私がCanvasに描いている様々な図形への参照です。個々にそれらを削除することはできますが、完全なキャンバスをクリアする方法は、最初からすべてを描くことができます。 ...ただ、(再)キャンバスに描く

+0

いくつかのコードを表示できますか? –

答えて

1

私が発見したニル・アプローチは、現在のキャンバスを配置し、代わりに正確に同じ場所に新しいものを作成することですが、それは単純なもののために私には資源の膨大な廃棄物のように思えます塗りつぶしイベントの開始時にCanvasに背景色を入力します。

public void paintControl(PaintEvent event) { 

    GC gc = event.gc; 

    gc.setBackground(... background color ...); 

    Rectangle fillRect = getClientArea(); 

    gc.fillRectangle(fillRect); 

    ... continue drawing 
} 
関連する問題