File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Background image not loading on JPanel

 
Hazem Hamam
Greenhorn
Posts: 8
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Might be the easiest question there is but I tried alot of things and it didnt work. I am trying to paint a background picture on a JPanel. After many tries and failures on my own, I found the following example code on the web which many said is working fine:

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

public class BackgroundImage extends JFrame
{
JScrollPane scrollPane;
ImageIcon icon;
Image image;

public BackgroundImage()
{
icon = new ImageIcon("???.jpg");

JPanel panel = new JPanel()
{
protected void paintComponent(Graphics g)
{
// Dispaly image at at full size
g.drawImage(icon.getImage(), 0, 0, null);

// Scale image to size of component
//Dimension d = getSize();
//g.drawImage(icon.getImage(), 0, 0, d.width, d.height, null);

// Fix the image position in the scroll pane
//Point p = scrollPane.getViewport().getViewPosition();
//g.drawImage(icon.getImage(), p.x, p.y, null);

super.paintComponent(g);
}
};
panel.setOpaque( false );
panel.setPreferredSize( new Dimension(400, 400) );
scrollPane = new JScrollPane( panel );
getContentPane().add( scrollPane );

JButton button = new JButton( "Hello" );
panel.add( button );
}

public static void main(String [] args)
{
BackgroundImage frame = new BackgroundImage();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setLocationRelativeTo( null );
frame.setVisible(true);
}
}

I am supposed to switch the ???.jpg with the name of the image I am trying to use and I did. I am still getting a JPanel with the button but no background. I placed the image in the root of the package, and in the same package as is the JFrame class am using to display the JPanel. Still no luck.

It might be related to my class not finding the image or not able to read it or something I don't know and am out of ideas. Any help is greatly appreciated

Hazem,
 
Michael Dunn
Ranch Hand
Posts: 4632
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I copy/pasted your code, changed the .jpg to a file name in the same directory
compiled and ran the code - image appeared OK.

change to another .jpg and see how you go
 
Hazem Hamam
Greenhorn
Posts: 8
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello again and Thx for the reply,

I tried changing 3 images with no luck, Used JPG the three times and the same problem. Do I need them to be at certain resoultion, extension or any other paramter for that matter to work?
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24204
34
Chrome Eclipse IDE Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Moving to our Swing/AWT forum.
 
Michael Dunn
Ranch Hand
Posts: 4632
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
my earlier try was on winXP, java 1.5.0_05

just tried again, win98SE, 1.4.0_01, also worked OK

only requirement (for the posted code) is the .jpg file has to be in the same directory
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic