16. 7. 2. Double buffer

本文介绍了一个使用Java Applet和BufferedImage实现双缓冲绘图的例子。通过创建BufferedImage对象并在其上进行绘画操作,然后将绘制好的图像显示到屏幕上,避免了直接在屏幕上绘制造成的闪烁问题。此示例展示了如何设置缓冲区、填充背景色及绘制线条。

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

import java.applet.Applet; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import javax.swing.JFrame; public class DoubleBufferWithBufferedImage extends Applet{ int gap = 3;//gap:缺口 int mx,my; Image buffer = null; int w,h; public DoubleBufferWithBufferedImage(){ setSize(300,300); Dimension d = getSize(); w = d.width; h = d.height; //type_int_rgb表示一个图像,它具有合成整数像素的 8 位 RGB 颜色分量。 buffer = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); } public void paint(Graphics g){ Graphics screenc = null;//定义一个空画笔 screenc = g;//把g给这支画笔 g = buffer.getGraphics();//g拿到buffer的画笔 g.setColor(Color.blue); g.fillRect(0, 0, w, h); g.setColor(Color.red); for (int i = 0; i < w; i += gap) g.drawLine(i, 0, w - i, h); for (int i = 0; i < h; i += gap) g.drawLine(0, i, w, h - i); screenc.drawImage(buffer, 0,0,null); } public static void main(String[] args) { JFrame f = new JFrame(); f.setSize(300, 300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(new DoubleBufferWithBufferedImage()); f.setVisible(true); } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值