Having a JPanel 'float' semi-transparently over another component

I am a programmer of a java project for our company.
Managemnt decided that when a certain event happens, we need to 'semi-disable' a certain text area (in a JScrollPane), and have a floating message with a progress bar on top of this text area, but be semi-transparent, so you can still read the text under it.
(Basically, they want it to look like a html page with a floating, semi-transparent DIV, because that is how another group mocked it up).
I am trying to implement this, but am running into problems.
Here is what I have, below I'll tell you what is wrong with it.
     * The purpose of this class is to have a scroll pane that can have it's contents partially covered by another panel
     * while still being able to read both the original panel and the new covering content, and still being able to scroll
     *the content under the covering panel.
    public class JOverlayScrollPane extends JScrollPane{
        private JPanel overlay = null;
        private Insets overlayInsets = null;
        private java.awt.AlphaComposite blend = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.50f);
        private ComponentAdapter cl = null;
        public void setOverlay(JPanel pan, Insets inset){
            overlay = pan;
            overlayInsets = inset;
            if(cl != null){
                cl = new ComponentAdapter(){
                    public void componentResized(ComponentEvent e){
                        resizeOverlay();
            resizeOverlay();
            repaint();
        public void paint(Graphics g){
            super.paint(g);
            if(g instanceof Graphics2D && overlay !=null){
                Graphics2D g2 = (Graphics2D)g;
//                g2.setComposite(blend);
                //overlay.paint(g2);
                paintStuff(g,overlay);
        private void resizeOverlay(){
            if(overlay != null){
                Dimension size = getSize();
                int x = 0;
                int y = 0;
                if(overlayInsets !=null){
                    x = overlayInsets.left;
                    y = overlayInsets.top;
                    size.width = size.width - overlayInsets.left - overlayInsets.right;
                    size.height = size.height - overlayInsets.top - overlayInsets.bottom;
                overlay.reshape(x,y, size.width, size.height);
                overlay.doLayout();
                overlay.validate();
        private void paintStuff(Graphics g,Component c){
            if(c != null){
                c.paint(g);
                if(c instanceof Container){
                    Container cont = (Container)c;
                    for(int i=0;i<cont.getComponentCount();i++){
                        Component cc = cont.getComponent(i);
                        paintStuff(g,cc);
    }//end of overlay scroll pane(I am having problems, so for now, the alpha blend is commented out).
The first version didn't have the paintStuff() method (it just called paint). This just drew a big grey box, now of the sub-components of the passed in JPanel were drawing. I added the do layout and validate calls, without success.
Then I added the paintStuff call, and all the subcomponents now, draw, but they all draw at 0,0.
Questions
1. Is the the correct approach to do this, or sould I be playing with the glass pane or some other approach?
2. It seems that the overlay panel isn't being layed out / doens't paint it's children correctly. Is this because it isn't really part of the layout (i.e. it has no parent / is never added to a container) or am I just missing a step in 'faking' adding it to a layout?
3. I'm sure I could just override paint and paint my own stuff (hand draw the text and a progress bar), but I would really like to put everything on one JPanel as what we want to display my be different in the future. I know that I manually ahve to call repaint on this scrollpane if one of the components on the overlay JPanel change in appearence (the progress bar especailly), and that they won't get events (I don't care about this as they are all non-interactive for now). Is this a viable approach, or is there a better way to do this?
Thanks

Wow, good answer.
I never concidered using a root pane other than as it is used in JFrame.
Very cool answer.
Here is my origional code modifed with JN_'s idea, which cleaned up a repaint issue I was having.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TransparentPanel extends JFrame implements ActionListener
    ProgressPanel progressPanel;
    int progressCount;
    public TransparentPanel()
        super( "TransparentPanel Test");
        setDefaultCloseOperation( EXIT_ON_CLOSE );
        JPanel panel = new JPanel( new BorderLayout() );
        JTextArea area = new JTextArea( 20, 40 );
        JRootPane pane = new JRootPane();
        pane.setContentPane( new JScrollPane( area ) );
        panel.add( pane, BorderLayout.CENTER );
        //panel.add( new JScrollPane( area ), BorderLayout.CENTER );
        progressPanel = new ProgressPanel();
        pane.setGlassPane( progressPanel );
        JPanel buttonPanel = new JPanel( new FlowLayout());
        JButton button = new JButton( "Show" );
        button.setActionCommand("SHOW");
        button.addActionListener( this );
        buttonPanel.add( button );
        button = new JButton( "Hide" );
        button.setActionCommand("HIDE");
        button.addActionListener( this );
        buttonPanel.add( button );
        panel.add( buttonPanel, BorderLayout.SOUTH);
        setContentPane( panel );
        pack();
        setLocationRelativeTo( null );
        setVisible( true );
    public static void main( String[] args )
        try
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        catch( Exception e )
            e.printStackTrace();
        new TransparentPanel();
    public class ProgressPanel extends JPanel
        Color bg = new Color( 225, 221, 221, 100 );
        Color fg = new Color( 170, 234, 202, 100 );
        int progress;
               setOpaque( false );
        public void setProgress( int n )
             setVisible( n > 0 && n <= 100 );
            progress = n;
            repaint();
        public void paint( Graphics g )
            if( isVisible() )
                Rectangle bounds = getBounds();
                g.setColor( bg );
                g.fillRect( bounds.x, bounds.y, bounds.width, bounds.height );
                g.setColor(  fg );
                int width = (int)(((double)progress/100)*bounds.width);
                int height = (int) (((double)bounds.height)*.1);
                int y = (int) (((double)bounds.height)*.4);
                g.fillRect( bounds.x,y,width,height);
     * Invoked when an action occurs.
    public void actionPerformed(ActionEvent e)
        String cmd = e.getActionCommand();
        if(cmd.equals( "SHOW" ) )
            progressCount+= 10;
            if( progressCount > 100 )
                progressCount = -1;
        else if( cmd.equals("HIDE" ) )
            progressCount = -1;
        progressPanel.setProgress( progressCount );
}

Similar Messages

  • An Image JPanel, A semi-transparent JPanel, and non-opaque components

    This is a more intelligent re-asking of the question I posed here: http://forum.java.sun.com/thread.jspa?threadID=579298&tstart=50.
    I have a class called ImagePane, which is basically a JPanel with an image background. The code is much like the ImagePanel posted by camickr, discussed in this topic: http://forum.java.sun.com/thread.jspa?forumID=57&threadID=316074 (except mine only draws the image, it does not tile or scale it).
    On top of my ImagePane, I can place another component, TransparentContainer. This again extends JPanel, only a color is specified in the constructor, and it is drawn at about 70% opacity. This component is meant to help increase the readability of text components that blend with the background image, without blocking out the background image completely.
    This works very well, until I need to add a component, like, say, a non-opaque JRadioButton in a ButtonGroup. When you select a new JRadioButton at runtime, the semi-transparent JPanel fills with a combination of a completely opaque color (the one specifies to the TransparentContainer) and garbage from the non-opaque component being redrawn.
    I have noticed that the UI is restored to being non-messed up if you place another application window on top of it and then move it. So apparently, one solution is to redraw the entire UI, or just the part that has the JRadioButton on it, every time the radio button is clicked. However, this seems unnecessarily complicated. It seems to me that I am missing something in my TransparentContainer's paintComponent() method. Does anyone have any ideas?
    Here is my TransparentContainer code, if it will help:
    import java.awt.AlphaComposite;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    import javax.swing.JPanel;
    public final class TransparentContainer extends JPanel
         /* Private Fields: For use only by this class.
          *  These fields hold information needed by more
          *  than one method of this class.
         private boolean fullTransparencyEnabled;
         private Color baseColor;
         private Color outerBorderColor;
         private Color innerBorderColor;
         private int obw;
         private int ibw;
         private int cbw;
         /* -- START OF METHODS -- */
         /* public TransparentContainer(Color color, boolean fullTrans)
          *   Initiallizes the transparent container object
          *   with 'color' as its base color.
         public TransparentContainer(Color color, boolean fullTrans)
              fullTransparencyEnabled = fullTrans;
              baseColor = color;
              Color borders[] = findBorderColors();
              outerBorderColor = borders[0];
              innerBorderColor = borders[1];
              obw = 3;
              ibw = 1;
              cbw = obw + ibw;
         /* private Color[] findBorderColors(Color base)
          *   Calculates the colors for the outer and inner
          *   borders of the object based on the base color.
         private Color[] findBorderColors()
              Color borders[] = new Color[2];
              int colorData[] = new int[9];
              colorData[0] = getBaseColor().getRed();
              colorData[1] = getBaseColor().getGreen();
              colorData[2] = getBaseColor().getBlue();
              colorData[3] = colorData[0] - 50;          // outerBorder red
              colorData[4] = colorData[1] - 45;          // outerBorder green
              colorData[5] = colorData[2] - 35;          // outerBorder blue
              colorData[6] = colorData[0] + 30;          // innerBorder red
              colorData[7] = colorData[1] + 30;          // innerBorder green
              colorData[8] = colorData[2] + 20;          // innerBorder blue
              /* Make sure the new color data is not out of bounds: */
              for (int i = 3; i < colorData.length; i++)
                   if (colorData[i] > 255)
                        colorData[i] = 255;
                   else if (colorData[i] < 0)
                        colorData[i] = 0;
              borders[0] = new Color(colorData[3], colorData[4], colorData[5]);
              borders[1] = new Color(colorData[6], colorData[7], colorData[8]);
              return borders;
         /* public Color getBaseColor()
          *   Returns the baseColor of this object.
         public Color getBaseColor()
              return baseColor;
         /* public Color getOuterColor()
          *   Returns the outerBorderColor of this object.
         public Color getOuterColor()
              return outerBorderColor;
         /* public Color getInnerColor()
          *   Returns the innerBorderColor of this object.
         public Color getInnerColor()
              return innerBorderColor;
         /* public boolean getFullTransEnabled()
          *   Returns whether or not this object will render
          *   with all of its transparency effects.
         public boolean getFullTransEnabled()
              return fullTransparencyEnabled;
         /* protected void paintComponent(Graphics g)
          *   Paints the component with the borders and colors
          *   that were set up in above methods.
         protected void paintComponent(Graphics g)
              Graphics2D g2d = (Graphics2D) g;
              AlphaComposite alphaComp;
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
              g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
              g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
                                            RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
              g2d.setColor(getBaseColor());
              /* Draw the main body of the component */
              if (getFullTransEnabled())
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
                   g2d.setComposite(alphaComp);
              else
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
                   g2d.setComposite(alphaComp);
              g2d.fillRect(cbw, cbw, super.getWidth() - 2 * cbw, super.getHeight() - 2 * cbw);
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
              g2d.setComposite(alphaComp);
              /* Draw the inner border: */
              g2d.setColor(getInnerColor());
              g2d.fillRect(obw, obw, ibw, super.getHeight() - obw * 2); // left border
              g2d.fillRect(obw, obw, super.getWidth() - obw, ibw); // top border
              g2d.fillRect(super.getWidth() - cbw, obw, ibw, super.getHeight() - obw * 2); // right border
              g2d.fillRect(obw, super.getHeight() - cbw, super.getWidth() - obw * 2, ibw); // bottom border
              /* Draw the outer border: */
              g2d.setColor(getOuterColor());
              g2d.fillRect(0, 0, obw, super.getHeight()); // left border
              g2d.fillRect(0, 0, super.getWidth() + obw, obw); // top border
              g2d.fillRect(super.getWidth() - obw, 0, obw, super.getHeight()); // right border
              g2d.fillRect(0, super.getHeight() - obw, super.getWidth(), obw); // bottom border
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
              g2d.setComposite(alphaComp);
              g2d.dispose();
    }

    I added the main method to your TransparentContainer class ...
         public static void main(String[] args) {
              JFrame f = new JFrame("test transparent container");
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              TransparentContainer tc = new TransparentContainer(Color.RED, true);
              JLabel label = new JLabel("Hello, World!");
              tc.add(label);
              f.getContentPane().add(tc);
              f.setSize(800, 600);
              f.setVisible(true);
         }...using the code you posted the label was not shown. I modified your paintComponent(Graphics g) method and I did this (see the areas in bold):
         /* protected void paintComponent(Graphics g)
          *   Paints the component with the borders and colors
          *   that were set up in above methods.
         protected void paintComponent(Graphics g)
              // Call super so components added to this panel are visible
              super.paintComponent(g);
              Graphics2D g2d = (Graphics2D) g;
              AlphaComposite alphaComp;
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
              g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
              g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
                                            RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
              g2d.setColor(getBaseColor());
              /* Draw the main body of the component */
              if (getFullTransEnabled())
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
                   g2d.setComposite(alphaComp);
              else
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
                   g2d.setComposite(alphaComp);
              g2d.fillRect(cbw, cbw, super.getWidth() - 2 * cbw, super.getHeight() - 2 * cbw);
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
              g2d.setComposite(alphaComp);
              /* Draw the inner border: */
              g2d.setColor(getInnerColor());
              g2d.fillRect(obw, obw, ibw, super.getHeight() - obw * 2); // left border
              g2d.fillRect(obw, obw, super.getWidth() - obw, ibw); // top border
              g2d.fillRect(super.getWidth() - cbw, obw, ibw, super.getHeight() - obw * 2); // right border
              g2d.fillRect(obw, super.getHeight() - cbw, super.getWidth() - obw * 2, ibw); // bottom border
              /* Draw the outer border: */
              g2d.setColor(getOuterColor());
              g2d.fillRect(0, 0, obw, super.getHeight()); // left border
              g2d.fillRect(0, 0, super.getWidth() + obw, obw); // top border
              g2d.fillRect(super.getWidth() - obw, 0, obw, super.getHeight()); // right border
              g2d.fillRect(0, super.getHeight() - obw, super.getWidth(), obw); // bottom border
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
              g2d.setComposite(alphaComp);
              // Do not dispose the graphics
              // g2d.dispose();          
         }...seems to work fine now. Perhaps you should also add methods or additional constructors so the user can easily change the transparency level...and add some javadoc comments to your constructors ...at a first glance I did not know what fullTrans was
    public TransparentContainer(Color color, boolean fullTrans)good luck!!

  • Semi transparent drawing over the picture

    Hello every one
    I am drawing the arrow image over the picture , so after drawing the arrow over the picture how to make it semi transparent so that background picture also should appear . 
     Please see the attached vi
    Attachments:
    arrow1.zip ‏2436 KB

    Thank you Strokes
    See the below pic i need this kind of output, transparent  drawing over the 2picture 
    Attachments:
    arrow transparent.PNG ‏411 KB

  • Alpha/semi-transparent  floating panel

    Is it possible to have a alpha/semi-transparent floating panel, for example in Unreal 2004 when u access the console a semi-transparent console appears.

    Hello,
    Yes it is possible; try the following code in your container...
         public void doLayout()
              super.doLayout();
              // use some reference to where you want the panel to float
              floatablePanel.setBounds(........);
         } // end doLayout... and the following in your floatablePanel...
         public void paint(Graphics g)
              Graphics2D g2 = (Graphics2D) g.create();
              g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.2f));
              super.paint(g2);
              g2.dispose();
         } // end paintHope it gives you ideas.
    Warm regards,
    Darren

  • Is there a way to create a semi-transparency with Java?

    I would like to be able to create a semi transparent form and I was does anyone know how to do this?

    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import java.io.*;
    import java.net.*;
    import javax.imageio.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class CompositeTest extends JPanel {
        private BufferedImage backImage, frontImage;
        private float alpha = 1;
        public CompositeTest() throws IOException {
            backImage = ImageIO.read(new URL("http://today.java.net/jag/bio/JagHeadshot-small.jpg"));
            frontImage = ImageIO.read(new URL("http://today.java.net/jag/Image54-small.jpeg"));
        public Dimension getPreferredSize() {
            return new Dimension(backImage.getWidth(), backImage.getHeight());
        public void setAlpha(float alpha) {
            this.alpha = alpha;
            repaint();
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g;
            int x = (getWidth() - backImage.getWidth())/2;
            int y = (getHeight()- backImage.getHeight())/2;
            g2.drawRenderedImage(backImage, AffineTransform.getTranslateInstance(x, y));
            Composite old = g2.getComposite();
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
            x = (getWidth() - frontImage.getWidth())/2;
            y = (getHeight()- frontImage.getHeight())/2;
            g2.drawRenderedImage(frontImage, AffineTransform.getTranslateInstance(x, y));
            g2.setComposite(old);
        public static void main(String[] args) throws IOException {
            final CompositeTest app = new CompositeTest();
            JSlider slider = new JSlider();
            slider.addChangeListener(new ChangeListener(){
                public void stateChanged(ChangeEvent e) {
                    JSlider source = (JSlider) e.getSource();
                    app.setAlpha(source.getValue()/100f);
            slider.setValue(100);
            JFrame f = new JFrame("CompositeTest");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Container cp = f.getContentPane();
            cp.add(app);
            cp.add(slider, BorderLayout.SOUTH);
            f.pack();
            f.setLocationRelativeTo(null);
            f.setVisible(true);
    }

  • Semi-Transparency Blues

    Hi—
    I’m having problems with semi-transparency in a t-shirt design.
    The design includes both a reflection and a satin effect that fade from 0% transparent to 100% transparent.  The t-shirt manufacturer’s software, unfortunately, fills the missing area (where there would be a partial image) with a solid color rather than empty space.
    Upon speaking with the manufacturer, they recommended “simulating” transparency via dithering, using either a GIF or a PNG converted to an eight-bit paletted file.  I understand neither of these concepts, and even the designer who helped me create the shirt in the first place -- awesome guy --  was unable to make much headway.
    Would anyone on this forum have any suggestions on how to implement these, please?  I’m running out of options, and would hate to have to trash a cool design.
    Many thanks,
    --Cliff

    Mark--
    Thank you for weighing in!
    Unfortunately I do not: the manufacturer did not send me a picture of what their software did to the image, so I only have my original.  And it's a very large file, at over 100MB (for the layered psd).  I could separate out the "problem" layers, but I suspect they would look just like any other file that uses semi-transparency.  Apparently this issue affects all images using that technique (unless done via dithering).
    Apologies,
    --Cliff

  • Problem with PDF 1.3-Export: Photoshop-Files with transparency over InDesign colored objects

    Hello!
    I'm using InDesign CS6.
    I'v finished now a layout for a folder, and I put a photoshop-image with transparency over a InDesign-rectangle which I have filled with a cmyk-color in yellow.
    When I export a PDF with the Settings "PDF X-3:2002" (with PDF-Standard 1.3) the Photoshop-image shows uggley jagged edges at the border to the InDesign-colored background. However, the Photoshop-images which are over another bitmap-image (as background), this images don't show this annoying edges.
    When I export to PDF-Standard 1.4 the problem doesn't occor, however my printing-service requests PDF 1.3.
    I know, the workaround for this problem is, to replace the yellow background-color with an bitmap-file with the same color, but is there any other option to get a correct result without this more time-consuming image trick?
    I think it has to do with the transparency reduction which is necessary if using PDF 1.3. When I examine the PDF-File in Illustrator, this edges occurs mostly at the borders from the tiles in which the image is cut during the transparency reduction process. Although, if I open the rendered PDF in Photoshop this jagged edeges are visible, so it is definitly a render error.
    I would be glad if someone of you has a solution for this problem, in the attachment is an image which illustrate the problem.
    Best wishes

    Find another printer.
    End of problem. It really saddens me to think that these Luddites are
    still in business making no effort to move into the 21st century.
    Bob

  • I frequently lose audio when in the middle of a call.  I am not certain whether it is a full disconnect or just an audio loss.  The person on the other end reports still being able to hear me, however, I suppose they could hear me speaking over another s

    I frequently lose audio when in the middle of a call.  I am not certain whether it is a full disconnect or just an audio loss.  The person on the other end reports still being able to hear me, however, I suppose they could hear me speaking over another source even if bluetooth disconnected. The loss of audio is always preceded by a quick shrill noise, so I can easily tell when it happens.  All I have to do to fix the problem is to select Audio Source on the call screen, temporarily switch audio back to the iPhone, and then switch back to the headset, and then it starts working again.
    My Iphone5 was replaced and having same Problem. Only does this when using bluetooth for talking.

    I have the exact same issue... I've been using a Jabra Extreme2 and just this weekend, bought a Plantronics Marque2 and today had the same issue, so it's clearly not the headset but the phone or OS.
    I might try a restore and see if it helps...

  • How to make a semi-transparent layer?

    Hello everyone,
    I am making my own website with Dreamwaver. I am a totally
    new user and have no IT background. So could anyone here kindly
    help me with my question:
    In the main page I would like to use two layers with images
    inserted. The second one will be a semi-transparent image which is
    made in Fireworks. I would like to let this layer cover the first
    one. Because it's semi-transparent, so i should still be able to
    see the underlying image... I did all this, but finally in the IE
    the second layer is NOT transparent at all.
    I don't know where the problem is. Please, if anyone knows
    the solutions or have any suggestion, let me know!
    Thanks!
    Inca

    I'll show it to you my way:
    1. Type the text and click the layer mask icon. The layer mask should be all white and have a small border. That indicates the mask ist active.
    The foreground color should be black and the background color white.
    2. Choose the gradient tool. Open the gradient window. Choose the first gradient, "foreground to background" = black to white.
    Change the white color to gray.
    3. Check the layer mask > is it active?
    Apply the gradient from right to left over your text.
    See the thin line in the screenshot.
    4. On your layer mask appears the gradient, left starting with gray and right ending with black.
    The advantage of this method is that you can change your text without  modifying the gradient.
    The black color on the layer mask hides the text, the gray color makes the text more or less visible and white color means full visible.
    Hope it helps.
    miss marple

  • Help: photoshop cs4 crashes when i drag a layer under or over another layer/try to change layer orde

    help: photoshop cs4 crashes when i drag a layer under or over another layer/try to change layer order
    this problem orcurred suddenly after having used the programm for years.
    i tried to reinstall cs4 and install all available updates, but it di not help...
    please help ! thanks

    What is the exact version and what’s your OS?
    What does the crash report state?
    Boilerplate-text:
    Are Photoshop and OS fully updated and have you performed the usual trouble-shooting routines (trashing prefs by pressing command-alt-shift/ctrl-alt-shift while starting Photoshop until the appropriate dialog appears after making sure all customized presets like Actions, Patterns, Brushes etc. have been saved and making a note of the Preferences you’ve changed, 3rd party plug-ins deactivation, system maintenance, cleaning caches, font validation, etc.)

  • Problem with opaque object/text showing as semi-transparent?

    I didn't start seeing this problem till today, but the past couple of times I've gone to create a new shape layer or text layer, it appears like it's at 50% opacity.  I've checked my layer settings, and they're all at 100% fill and opacity.  I can't see any reason why they'd be semi-transparent, and none of the settings I've tried have changed anything.  I've even tried deleting the shapes/text, saving my document, and starting over.  That worked one time, but this time it's not working.
    Even applying a color overlay still results in a semi-transparent shape.
    Anyone else have a similar issue and know how to fix it?  I am in the middle of doing a design for a client, for print, and I really can't be dealing with this right now.

    I ended up just deleting the group that was affected, saving it as a new file, and then rebuilding the new group from the new file. For some reason that worked.  I am not currently have the problem, so I can't show you what was happening, but I'll definitely look at these steps if it happens again.
    Thanks!
    Brooke

  • Semi-transparent block, pure black and rich black problems

    Hi!
    I'm new to inDesign, and I'm currently designing a book cover, for which I need some special effects. I'll try to explain as best as I can.
    The background is rich black, on top of it I have a text in white (all over it). I applied a block with 80% opacity, in rich black color. I cut out some shapes in it. The point was to have the text in dark gray all over the book cover, but in white in the places where I have the shapes.
    Everything is working exactly like I want, but a friend of mine told me if I apply rich black over white, I'll get a kind of magenta gray, so I have to apply pure 100 K to avoid that and get the dark gray I want. I tried that, and of course, applying some pure black block on top of my rich black cover gives all the cover a "grayish black" look. How can I work around that? I tried setting my semi-transparent block to "darken", but it didn't change anything.
    I put the links to the pdf, I hope that's ok.
    That's the one with rich black: https://dl.dropboxusercontent.com/u/68049919/coverlayout_print_richblack.pdf
    and that's how it looks with the pure black: https://dl.dropboxusercontent.com/u/68049919/coverlayout_print.pdf
    Thanks a lot!

    There's no need to use transparency to create your background text color—just make a text frame filled with the rich black  then select the type and fill it with an 80% tint of the rich black swatch or any other gray mix. Like this:
    The text frame selected with its fill showing in the Colors panel:
    Here the text is selected and the Colors panel shows the text fill as an 80% tint of the rich black. There's no transparency in this case.
    In general it's bad practice to use transparency when you can get the same effect with color fills.
    Also if you are worried about the neutrality of the gray check with your printer on whether the gray text should be 4-color (your 80% tint) or straight black (95% black).
    The accuracy of the InDesign softproof depends on an accurate monitor profile and the assigned CMYK profile (Edit>Assign Profiles...). The assigned CMYK profile affects the preview including the profiled gray balance. For example the default SWOP CMYK profile previews your 4-color dark gray bluer and as a lighter value than US Sheetfed.
    The preview of your 85% rich black mix with different CMYK asignments

  • Healing brush is semi-transparent

    I have Windows XP, sp2, Photoshop CS3.
    When I drag the healing brush over a section I want to heal, the sampled color looks just fine, but when I release the mouse button, the area turns semi-transparent instead of keeping the full color. I thought there was a problem with my transparency setting, but I can't seem to find where to view that, and I don't think this is the issue. If I drag the brush over the same area a few times, the area does not become more opaque.
    Perhaps I should mention that I usually use the brush to repair the borders of lines that are too indented to fix with the smudge, and I need to fill out the line a bit; the designated healing area usually has a background that has been made transparent with the eraser tool.
    Thank you so much for any help anyone can give me, I really appreciate it!

    The healing brush samples pixels of the surrounding area to be fixed. In areas where adjacent areas are different from target zone you can run into problems. Like OldBob says the clone stamp may work better as one can pick the area you are cloning from easier.

  • Scrolling semi-transparent panels

    I have a parent panel that paints a custom background. Within that panel, I embed another panel held by a JScrollPane. My intent is to have the custom background show through on the panel that is being scrolled.
    To accomplish this, I set both the scrollpane and the viewport to non-opaque and then I set the panel held by the scrollpane to non-opaque as well.
    When I run the program everything works fine and the panel can be scrolled and displayes the background image just as I want it.
    Next, I want to set the panel in the scrollpane to be semi-transparent. I set the panel to opaque and give it a semi-transparent background color(ie alpha value or .5). This gives me a see-through effect and when I run the program it initially looks good. However, when I scroll the panel, the refresh is not handled correctly. The problem appears to be that the paint method of the parent panel is not being called.
    I think the scrollbar code incorrectly assumes that since the embedded panel is defined as opaque that the parent panels do not need to be painted. However, this assumption is only valid if the background color of the embedded panel has an alpha value of 1.0
    Does anyone have a workaround for scrolling semi-transparent panels?

    On second thought, that's going to cause a stack overflow. You are going to need a flag to not call it. Something like so:public void paint(Graphics g) {
        if (someflag) {
            someflag=false;
            bgPanel.paint(bgPanel.getGraphics());
            someflag=true;
        // do my painting stuff ... super.paint(g); ???
    }Just a thought, I haven't tested it.

  • Displaying a temporary image over another image

    Hello,
    I am writing a program where I need to draw a filled rectangle over another image then disappear (without drawing on to it).
    The Image is on a JPanel.
    Obviously I can not use Graphics.drawImage because that will permantley draw the rectangle on the image.
    How can I achieve what I want to do here?
    Thanks
    Andrew

    Yes, Ill be more specific.
    I have an image and over the image there are two words: "photos" "videos".
    I want to do the following: when you scroll the mouse on top of the word "photos", the word "photos" gets underlined and you can click on it and it will have a link to another page.
    Now, I normally insert an "imagen de sustitucion" which i think is a substitute image and it works perfectly. But then I cant move that image to be ON TOP of the picture i want to use as a kind of backround to these words.

Maybe you are looking for