This week's giveaway is in the Spring forum.
We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!
See this thread for details.
The moose likes Swing / AWT / SWT and the fly likes Removing graphical trash from JLayeredPane Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of REST with Spring (video course) this week in the Spring forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Removing graphical trash from JLayeredPane" Watch "Removing graphical trash from JLayeredPane" New topic

Removing graphical trash from JLayeredPane

Andrew Ryaskov

Joined: Dec 15, 2011
Posts: 1

Hi everybody!
Help me to remove this graphical artifact from JLayeredPane:

There is a simple app with drawing panel(Scene) inherited from JLayeredPane and graphical objects on it - inherited from JComponent with overridden paintComponent():

If zoom == 1.0 ( g.scale(1.0, 1.0) in Scene's paint() method ) it's OK - moving objects in scene dont lead to graphical artifacts:

But if I set zoom greater or lower than 1.0, I've got some bugs while moving objects by mouse:

How to remove this "trace"?

Thank you!

Rob Camick
Ranch Hand

Joined: Jun 13, 2009
Posts: 2416
A JComponent doesn't repaint its background. So I'm guessing you need to add code to do this in the paintComponent() method. Something like:

Rob Spoor

Joined: Oct 27, 2005
Posts: 20193

Or extend JPanel instead of JComponent; don't forget to call super.paintComponent(g) as the first statement in the overridden paintComponent method, or you'll get the same result.

How To Ask Questions How To Answer Questions
I agree. Here's the link:
subject: Removing graphical trash from JLayeredPane
It's not a secret anymore!