Java Glossary : flicker

CMP home Java glossary home Menu no menu Last updated 2004-06-28 by Roedy Green ©1996-2004 Canadian Mind Products

Java definitions: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

You are here : home : Java Glossary : F words : flicker.

flicker
Here are some things to try to avoid flicker:
  1. In a Canvas.paint(), there is no need to call super.paint() since update() will have already cleared the screen.
  2. In your update routine, don't erase anything, just call paint. paint then must paint the entire Canvas. You override update() to just directly call paint() without the g.clearRect(0, 0, width, height);.
  3. In your update routine, just erase the parts of the image that will become background, perhaps even only the parts that are not already background.
  4. Use Swing which has double buffering built in. You must override paintComponent rather than paint to get the automatic double buffering.
  5. Use manual double buffering in AWT. Prepare all your images ahead of time with createImage and blast them to the screen (without erasing first) with drawImage in your paint routine. Because Images are platform dependent, you can't simply instantiate them with a constructor. You have to create them through calls like Applet.getImage(), Component.createImage(), or Toolkit.getDefaultToolkit(). getImage().
  6. In Windows, in Swing, you will see the entire screen repaint from time to time for no apparent reason, causing an annoying flicker. This is due to the fact that Swing uses DirectDraw for rendering which periodically redraws just to be safe. You can turn off DirectDraw and use standard Windows GDI rendering by starting Java with:

    Java.exe -Dsun.java2d.noddraw=true MyClass
    

    This will slightly slow down painting, however.

  7. In Swing, use setOpaque( true ) to arrange for the system to draw the background in for you. This seems to work better than drawing it yourself with clearRect.
This is a complicated topic. Tricks for AWT and Swing differ.


CMP logo
CMP_home
home
Canadian Mind Products CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[24.87.56.253]
Your IP:[80.134.30.163]
You are visitor number 1296.
Please send errors, omissions and suggestions
to improve this page to Roedy Green.
You can get a fresh copy of this page from: or possibly from your local J: drive mirror:
http://mindprod.com/jgloss/flicker.html J:\mindprod\jgloss\flicker.html