aspose file tools*
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
Author

Removing graphical trash from JLayeredPane

Andrew Ryaskov
Greenhorn

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: 2215
    
    7
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
Sheriff

Joined: Oct 27, 2005
Posts: 19760
    
  20

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.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Removing graphical trash from JLayeredPane