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