Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Double Buffer Java source code
#1

Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

/*
<applet code=DoubleBuffer width=300 height=300>
<param name="img" value="smile.jpg">
</applet>
*/

public class DoubleBuffer extends Applet
{
  int gap = 3;
  int mx,my;
  boolean flicker=true;
  Image buffer=null;
  int w,h;
  public void init()
  {
  Dimension d = getSize();
  w = d.width;
  h = d.height;
  buffer = createImage(w,h);
  addMouseMotionListener(new MouseMotionAdapter()
  {
  public void mouseDragged(MouseEvent me)
  {
  mx = me.getX();
  my = me.getY();
  flicker = false;
  repaint();
  }
  public void mouseMoved(MouseEvent me)
4  {
  mx = me.getX();
  my = me.getY();
  flicker = true;
  repaint();
  }
  });
  }
  public void paint(Graphics g)
  {
  Graphics screengc = null;
  if(!flicker)
  {
  screengc = g;
  g = buffer.getGraphics();
  }

  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<w;i+=gap)
  g.drawLine(0,i,w,h-i);

  g.setColor(Color.black);
  g.drawString("Press mouse button to double buffer",10,h/2);

  g.setColor(Color.yellow);
  g.fillOval(mx-gap,my-gap,gap*2+1,gap*2+1);

  if(!flicker)
  screengc.drawImage(buffer, 0 , 0,null);
  
  }
  public void update(Graphics g)
  {
  paint(g);
  }
}
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

Powered By MyBB, © 2002-2024 iAndrew & Melroy van den Berg.