java swt中用GC在Canvas上画出一条直线后,怎么才能把这条直线去掉????

xuewutian 2008-04-22 08:28:02
问题如题目,谢谢!!!
...全文
493 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hytdsky 2009-12-21
  • 打赏
  • 举报
回复
我想知道怎么画曲线
pchhbtm 2008-05-03
  • 打赏
  • 举报
回复
gc.drawOval(leftX, topY, height, width);
前背景色填充面板
xuewutian 2008-05-02
  • 打赏
  • 举报
回复
有什么方法可以解决,哪位说一下,谢谢!!!!
xuewutian 2008-04-25
  • 打赏
  • 举报
回复
用clockCanvas.redraw();这个可以重画
我还想问一下,为什么用clockCanvas.redraw();之后
表盘的闪烁很历害???
谢谢!!!
xuewutian 2008-04-25
  • 打赏
  • 举报
回复
哦,谢谢
Plastrio 2008-04-24
  • 打赏
  • 举报
回复
最基本的动画绘制方法,比如:你在白色背景上画了一条黑线,就得再画一条白线把他盖上

如果你做时钟的话,肯定有表盘(即使只是白板),那么,画出一个指针后,重新绘制表盘,把它盖上,然后画新的指针

没用过java的绘图,不过思路应该差不多 里边的repaint()方法不知是否就是干这个的?

总之需要分层次画
xuewutian 2008-04-22
  • 打赏
  • 举报
回复
怎么没人回答啊????????
xuewutian 2008-04-22
  • 打赏
  • 举报
回复
我想用swt画一个clock出来

// 用来设置时间
setTime(h, m, s);

clockCanvas = new Canvas(clockComposite, SWT.None);
clockCanvas.setBounds(0, 0, 200, 200);

gc = new GC(clockCanvas);
clockCanvas.addPaintListener(new PaintListener()
{
public void paintControl(PaintEvent event)
{
// 画圆
gc.drawOval(leftX, topY, height, width);
// 画出秒线
int endX = getLineEndX(secLineLength, computeSecRadian(sec));
int endY = getLineEndY(secLineLength, computeSecRadian(sec));
gc.drawLine(centerX, centerY, endX, endY);
// 画出分钟线
endX = getLineEndX(minLineLength, computeMinRadian(min));
endY = getLineEndY(minLineLength, computeMinRadian(min));
gc.drawLine(centerX, centerY, endX, endY);
// 画出时钟线
endX = getLineEndX(hourLineLength, computeHourRadian((double)hour));
endY = getLineEndY(hourLineLength, computeHourRadian((double)hour));
gc.drawLine(centerX, centerY, endX, endY);
gc.dispose();
}
});
在运行时,前面画出的秒线,分钟线和时钟线都不会消除,我想问一下,怎么才能把前面画出的线消除掉,
或在swt中,还有其他的方法来画出clock???请详细地说一下,我才开始看swt
谢谢!!!!

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧