java如何添加双缓冲,java双缓冲范例

java双缓冲实例

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Cartoon extends JApplet implements Runnable

{

Graphics screenBuffer = null;//创建图形缓冲区

Image screenImage = null;

private Thread runner;

private int x = 5;

private int move = 1;

public void init ( )

{

screenImage = createImage ( 230, 160 );

screenBuffer = screenImage.getGraphics ( );

}

public void start ( )

{

if (runner == null)

{

runner = new Thread( this );

runner.start();

}

}

public void run( )

{

Thread circle = Thread.currentThread ( );

while ( runner == circle )//指向同一对象,便开始运行

{

x += move;

if ( ( x > 105 ) || ( x < 5 ))

move *= -1;

repaint ( );

}

}

public void drawCircle( Graphics gc )

{

Graphics2D g2D = ( Graphics2D ) gc;

g2D.setColor ( Color.blue );

g2D.fillRect ( 0, 0, 100, 100 );

g2D.setColor ( Color.yellow );

g2D.fillRect ( 0, 0, 100, 100 );

g2D.setColor ( Color.red );

g2D.fillOval ( x, 5, 90, 90 );

}

public void paint( Graphics g )

{

screenBuffer.setColor ( Color.white );

screenBuffer.fillRect (100,0,96,60);

drawCircle ( screenBuffer );

//将缓冲区的图像复制到主缓冲区中

g.drawImage ( screenImage, 0, 0, this );

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值