Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6683775
Votes 0
Synopsis Painting artifacts is seen when panel is made setOpaque(false) for a translucent window
Category java:classes_swing
Reported Against
Release Fixed 6u14(b02)
State 11-Closed, Unverified, bug
Priority: 2-High
Related Bugs 6668436 , 6794764
Submit Date 03-APR-2008
Description
I have a frame , which is having a jpanel in the north & jpanel is having a button . In the center of the frame i have added a Jscrollpane which holds a textarea. I called panel.setOpaque(false) & set the frame to become translucent by calling  com.sun.awt.AWTUtilities.setWindowOpaque(frame, false); , when i call this method i can see two  button . I have attached screen shot of the same. When i comment the  com.sun.awt.AWTUtilities.setWindowOpaque(frame, false); line , Every thing works as expected. 

Step to reproduce:-
----------------------
1) Run the attached testcase.
2) If you see two button to the north of the frame , then the bug is reproduced.
Or see screen shot. If the gui & screen is seen then the bug is reproduce.


I run this program on 6u10 b14 .
Posted Date : 2008-04-03 06:53:34.0
Work Around
N/A
Evaluation
This is because making the components non-opaque (using setOpaque(false)) is not sufficient. The panel should had been made non-double-buffered as well (using the setDoubleBuffered(false)).

Currently the Swing team is fixing this issue. Please refer to the CR 6668436 for more details. As soon as this CR is fixed the problem should disappear. Thus I'm closing this CR as a duplicate of the 6668436.
Posted Date : 2008-04-04 09:32:26.0

This bug is reopened, we need to fix it the way that painting double-buffered components to an off-screen image not corrupt Swing double-buffer
Posted Date : 2008-12-30 16:40:16.0

The idea of the fix is to paint through RepaintManager  
only if the paint() method is called by the Swing painting system
(by RepaintManager itself or paintImmediately())
Posted Date : 2008-12-30 17:27:17.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang