Java 关于paintComponent与paint有什么区别?各自的特点?

天涯流星雨 2013-09-08 09:52:42
大神们回答的详细一点。求教了
...全文
312 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天涯流星雨 2013-09-09
  • 打赏
  • 举报
回复
谢了,你们说的很清楚
失落夏天 2013-09-09
  • 打赏
  • 举报
回复
之间我看过一个人写的关于这个的文章,写的应该挺全的,可惜找不到地址了。。 这两个方法, paint()是基础,paint中会调用 paintComponent(), paintBorder(), paintChildren() 这三个方法, 这三个方法一个是绘制背景,一个绘制边框,一个绘制子控件。 一般重写背景,是建议重写paintComponent()的。
raistlic 2013-09-09
  • 打赏
  • 举报
回复
好吧,看到题目我的第一反应是回 search the fucking google 结果我自己搜了一下,用中文搜出的结果,前五个要么是误导要么说不到重点………… 重点: 1 - paint() 中调用 paintComponent(), paintBorder(), paintChildren() 2 - 最重要的区别是“双缓冲”。Swing 组件的 paint() 中实现了双缓冲,所以不要随便去覆写,会破坏双缓冲的,————建议的方式是覆写 paintComponent(),很多人做的小程序会”闪烁“,就是因为他们覆写了 paint() 方法,破坏了Swing本身的双缓冲。Swing 不建议用户自己实现双缓冲。 3 - 覆写 paint(),如果新方法没有去调用 paintChildren(),还会造成子控件不显示,鼠标移上去才显示,这个也是很多新手问的问题: “为什么我的按钮只有鼠标移上去才显示?” 4 - 只有极少数的情况可能需要覆写 paint() 方法,通常是为了实现特殊的绘图效果,或者特殊的优化,比如 JViewport 覆写了 paint() 方法,使用“延迟重绘”的方式来合并当滚动条移动时一些特别频繁的重绘请求,等等。

62,615

社区成员

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

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