【java】java使用双缓冲技术解决JFrame的的闪烁问题的两种方法
为解决这一问题可以采用双缓冲技术。可以通过截取上述过程,覆盖update函数,在内存中创建一个与窗口大小相同的图形。用Update调用drawImage函数将创建的图形直接画在窗口上。
方法一: 直接放到窗口类中使用即可
private Image offScreenImage=null;
@Override
public void update(Graphics g) { //解决JFram的方法
super.update(g);
if(offScreenImage==null){
offScreenImage=this.createImage(Fiall.JF_weight, Fiall.JF_height);
}
Graphics gOff=offScreenImage.getGraphics();
paint(gOff);
g.drawImage(offScreenImage, 0, 0, null);
}
方法二:
@Override
public void update(Graphics g) {
Image ImageBuffer = createImage(this.getWidth(), this.getHeight());
Graphics GraImage = ImageBuffer.getGraphics();
paint(GraImage);
GraImage.dispose();
g.drawImage(ImageBuffer, 0, 0, this);
}