Jump to content

  • Log In with Google      Sign In   
  • Create Account

[java] Clearing a Frame, QUICKLY


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 Kosh   Members   -  Reputation: 122

Like
Likes
Like

Posted 22 March 2000 - 01:59 AM

hi everyone, ok, I am animating an image in java, using swing''s JFrame, I create the object with vertices in an int array, then rotate them myself. When I have the final tranformed coords, I then create a GeneralPath of the points, which is then rendered using g2d.fill(shape). My problem is that if I use ClearRect(0,0,screenx,screeny); I get a huge amount of flicker in the image, do you know anyway to clear the buffer that will eliminate this flicker ? can you prove an example ? thanks. PS. dont recommend any books, I do not have any money to buy them, so any recommendations to buy XY java book, is just not needed. Thanks kosh

Sponsor:

#2 Jim_Ross   Members   -  Reputation: 122

Like
Likes
Like

Posted 22 March 2000 - 02:37 AM

It''s basic Double Buffering that you need.

BufferedImage DB = new BufferedImage(x,y,int Type);
Graphics DBg = DB.getGraphics();

now paint onto DBg whereever you used to paint on g. And the last thing you should do is paint
g.drawImage(0,0,DB,null);

This will transfer the image to the JFrame in one hit. The only problem is that you have to make sure the BufferedImage and Graphics are made before you start painting into them. BTW, unless you''ve overriden update(), you shouldn''t need to clear the screen, repaint() calls update(), and update() calls clear then paint().

P.S. this is all in Just Java by Peter van der Linden if you want to buy it.

#3 joeG   Members   -  Reputation: 172

Like
Likes
Like

Posted 22 March 2000 - 02:39 AM

Double buffering is your answer. I did this once a long time ago and far away... (in Java), but I think how you do this is use the Component''s createImage to create an offscreen image or context....[someone will fill in the answer with the most up to date technique. Sorry]

JoeG

#4 Jim_Ross   Members   -  Reputation: 122

Like
Likes
Like

Posted 22 March 2000 - 10:41 AM

Yes you can make the Image from your components, like a JFrame using JFrame.createImage();
But the tricky part is grabbing the graphics context from the newly created image using getGraphics, and using that in all your painting routines save the last drawImage(NewlyCreatedImage,0,0,null);




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS