【发布时间】:2012-12-30 12:19:12
【问题描述】:
考虑 -
public class MainCanvas extends Canvas {...}
和
Display display = new Display();
display = new Display();
myShell = new Shell(display);
myCanvas = new MainCanvas(myShell, SWT.NO);
GC myGC = new GC(myShell);
myGC.fillOval(10,20,30,40) ; //paint shape ..
现在我想从画布上删除myGC.fillOval(10,20,30,40) ;绘制的形状。
有什么命令可以删除最后的绘画,或者清除画布的命令吗?
【问题讨论】:
-
为什么不直接填充一个覆盖整个 GC 的矩形?
-
javax.swing.undo在 Swing 中提供撤消/重做功能,不确定 SWT 中的替代方案 -
您可以做的是在每次绘图操作后将画布作为图像保存在堆栈中,并弹出堆栈以撤消。
标签: java shell graphics swt java-canvas