File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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
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: 2449
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: 20271

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
Consider Paul's rocket mass heater.
subject: Removing graphical trash from JLayeredPane
jQuery in Action, 3rd edition