Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6683775

Painting artifacts is seen when panel is made setOpaque(false) for a translucent window

    Details

    • Subcomponent:
    • Introduced In Build:
      b12
    • Introduced In Version:
    • Resolved In Build:
      b02
    • CPU:
      x86
    • OS:
      windows_xp
    • Verification:
      Not verified

      Backports

        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 .

          Issue Links

            Activity

            Hide
            anthony Anthony Petrov (Inactive) added a comment -
            BT2:SUGGESTED FIX

            The panel containing the components should be:
            1. non-opaque: JPanel.setOpaque(false);
            2. non-double-buffered: JPanel.setDoubleBuffered(false);
            In this case everything works fine.
            Show
            anthony Anthony Petrov (Inactive) added a comment - BT2:SUGGESTED FIX The panel containing the components should be: 1. non-opaque: JPanel.setOpaque(false); 2. non-double-buffered: JPanel.setDoubleBuffered(false); In this case everything works fine.
            Hide
            anthony Anthony Petrov (Inactive) added a comment -
            BT2: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.
            Show
            anthony Anthony Petrov (Inactive) added a comment - BT2: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.
            Hide
            alexp Alexander Potochkin (Inactive) added a comment -
            BT2:EVALUATION

            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
            Show
            alexp Alexander Potochkin (Inactive) added a comment - BT2:EVALUATION 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
            Hide
            alexp Alexander Potochkin (Inactive) added a comment -
            BT2:EVALUATION

            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())
            Show
            alexp Alexander Potochkin (Inactive) added a comment - BT2:EVALUATION 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())

              People

              • Assignee:
                alexp Alexander Potochkin (Inactive)
                Reporter:
                lpremkumsunw Lawrence Premkumar1 (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: