JFC 中绘制方法 paint(Graphics g) 和 paintComponent(Graphics g) 的区别(转)

本文对比了AWT和Swing两种Java图形用户界面工具包中的组件绘制机制。AWT通过更新和绘制方法实现重绘,而Swing则通过paintComponent等三个特定方法来分别绘制组件本身、边框及子组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 AWT 和 Swing 中组件的绘制方式不同,绘制方法的实现也有区别。

AWT 中组件重绘时先调用 update(Graphics g) 清除以前绘制的,再调用 paint() 方法里进行绘制,所以在 AWT 组件里重绘时,只要简单的覆写 paint() 方法就可以了。

而 在Swing 中,组件绘制 paint() 方法会依次调用 paintComponent(),paintBorder(),paintChildren() 三个方法。根据方法名就可以看出,paintComponent() 绘制组件本身,paintBorder() 绘制组件的边框,paintChildren() 绘制组件的子组件,所以Swing 编程时,如果继承 JComponent 或者其子类需要重绘的话,只要覆写 paintComponent() 而不是 paint(),方法 paintBorder(),paintChildren() 一般默认即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值