wood burning stoves 2.0*
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


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
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
Author

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

Nikhil V G
Greenhorn

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;

wbDisplay()
{

}

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.setColor(getBackground());
OSG.fillRect(0, 0, widthOfWB, heightOfWB);
OSG.dispose();
}
}



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.

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

if (dragging && figure != CURVE )
{
G.setColor(foreColor);

drawFigure(G,figure,startX,startY,mouseX,mouseY);
}

}//paintComponent

//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)
{

createWB();
Graphics G = WB.getGraphics();
System.out.println("inside insert picture");
try
{
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)
{System.out.println(e);}
}
}


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

Regards,
NIKHIL
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 37926
    
  22
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
 
Don't get me started about those stupid light bulbs.
 
subject: : A gray color box appeare d when loading an image on JPanel
 
Similar Threads
Problem in image loading on JPanel
setting the background
Good User Interface
help with oval
JComboBox on Background Image