my dog learned polymorphism
The moose likes Swing / AWT / SWT and the fly likes : A gray color box appeare d when loading an image on JPanel Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark ": A gray color box appeare d when loading an image on JPanel " Watch ": A gray color box appeare d when loading an image on JPanel " New topic

: A gray color box appeare d when loading an image on JPanel

Nikhil V G

Joined: Mar 22, 2006
Posts: 9
posted June 01, 2006 01:32 AM
Hai All,

I m nikhil. I have a Problem that when I load an image in to jpanel using drawImage method of Graphics class(G.drawImage(Image img,int width,int higth))...It take more time to load. When loading firts a gray color box will be appear on Frame. Then image loaded.How to avaoid this gray color. How to make it fast.
I m attaching part of my program with this

import javax.swing.*;
import java.awt.*;

public class wbDisplay extends JPanel
Image WB=null;
int widthOfWB, heightOfWB;



public void createWB()
// This method is responsible for creating the off-screen image.
// It should be called before using the WB. It will make a new WB if
// the size of the panel changes.

if(WB == null || widthOfWB != getSize().width || heightOfWB != getSize().height)
// Create the WB, or make a new one if panel size has changed.
WB = null; // (If WB already exists, this frees up the memory.)
WB = createImage(getSize().width, getSize().height);
widthOfWB = getSize().width;
heightOfWB = getSize().height;
Graphics OSG = WB.getGraphics(); // Graphics context for drawing to WB.
OSG.fillRect(0, 0, widthOfWB, heightOfWB);

public void paintComponent(Graphics G)
// Copy the off-screen image to the screen,
// after checking to make sure it exists. Then,
// if a shsape other than CURVE is being drawn,
// draw it on top of the image from the WB.

G.drawImage(WB, 0, 0, this);

if (dragging && figure != CURVE )



//insert picture is calling from another class that extends JFrame
//File f stored image

public void insertPicture(File F, int Mx, int My,mainScreenPart ms)

Graphics G = WB.getGraphics();
System.out.println("inside insert picture");
ImageIcon img=new ImageIcon(F.getPath());
int WID=img.getIconWidth();
int HEI=img.getIconHeight();
setPreferredSize(new java.awt.Dimension(WID,HEI));
G.drawImage(img.getImage(), Mx, My,WID,HEI, img.getImageObserver());

catch(Exception e)

I think i will get a solution from javaranch.Thanks in advance.

Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46397
When you were asked for code, you ought to have posted it as a reply, with code tags, not started a new thread.
And change your display name; the Ranch requires a full last name.
Craig Wood
Ranch Hand

Joined: Jan 14, 2004
Posts: 1535
I agree. Here's the link:
subject: : A gray color box appeare d when loading an image on JPanel
It's not a secret anymore!