16. 7. 2. Double buffer

来源:互联网 发布:最好的营销软件 编辑:程序博客网 时间:2024/05/16 04:54

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);}}