Bug 40392

Summary: JGVTComponent doesn't respect the opacity setting
Product: Batik - Now in Jira Reporter: Kirill Grouchnikov <kirillcool>
Component: GVTAssignee: Batik Developer's Mailing list <batik-dev>
Status: RESOLVED INVALID    
Severity: normal    
Priority: P3    
Version: 1.6   
Target Milestone: ---   
Hardware: Other   
OS: other   

Description Kirill Grouchnikov 2006-09-01 16:48:55 UTC
The JGVTComponent.paintComponent ignores the opacity setting and paints the
background in any case:

        g2d.setComposite(AlphaComposite.SrcOver);
        g2d.setPaint(getBackground());
        g2d.fillRect(visRect.x,     visRect.y, 
                     visRect.width, visRect.height);

A workaround is to set the background to new Color(0x0, true)
Comment 1 Thomas Deweese 2006-09-05 11:25:06 UTC
(In reply to comment #0)
> The JGVTComponent.paintComponent ignores the opacity setting and paints the
> background in any case:

   I take it you are refering to:
      JComponent.setOpaque(boolean isOpaque)

   If so your 'workaround' is the correct answer.  One might
argue that Batik should look at the 'Background' given and
setOpaque(flase) if the background color has an alpha less
than 1.0 (255).  The purpose of setOpaque is to inform
Swing that it needs to draw any components that are 'under'
the canvas.  Otherwise it skips painting them under the
assumption that the Canvas will simply cover them.

> A workaround is to set the background to new Color(0x0, true)

   This is in fact the correct thing to do.