This week's giveaway is in the Java/Jakarta EE forum.
We're giving away four copies of Java EE 8 High Performance and have Romain Manni-Bucau on-line!
I draw the maze on the panel. I have a drawPanel object where I get the Graphics from (Graphics g = this.drawPanel.getGraphics() Works fine.

Let's say that this window gets covered by another window. When I bring my app back to focus nothing gets repainted.

Is there an example of how I should use the paint method in this case?

Should I draw everything to an Image object and then redraw that image buffer? How does that work?

I think my approach is totally wrong.
author and iconoclast
Posts: 24217
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Dan,

Welcome to JavaRanch!

Short answer: yes, your approach is totally wrong. Don't use getGraphics() -- instead, implement a method such that a Graphics is just handed to you at exactly the right time. If you're using a java.awt.Panel, then override paint(). If you're using a javax.swing.JPanel, then override paintComponent().

I'm going to move this to the Swing/AWT forum for followup; I'll see you over there. If you don't understand what I mean about overriding, just say so and I'll larn ya.
When you have exhausted all possibilities, remember this: you haven't - Edison. Tiny ad:
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!