Problem with images

G

gaijinco

Hi!

I'm having a really frustrating problem with displaying images: the
problem is that when I created a GUI (using swing) the images doesn't
appears until I made the slightest change to the size of the window.

For the image, I'm using a JLabel with the setIcon() method.

I have tried all kinds of Layout Managers and all kind of combinations
of sizes for all elements (JFrame, JPanel's, JLabel's, etc) but
nothing seems to work.

Does somebody knows what may be happening?

Thank you very much!

This is my exact code:

public class InterfazCrucigrama extends JFrame {

private JLabel panelImagen;

public InterfazCrucigrama() {
setTitle( "Crucigrama" );
getContentPane( ).setLayout( new BorderLayout(10,10) );
setSize( 800, 600 );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setVisible(true);

panelImagen = new JLabel("");
panelImagen.setIcon(new ImageIcon("data/imagenes/
titulo.png"));
getContentPane().add(panelImagen, BorderLayout.NORTH);
}

public static void main(String[] args) {
InterfazCrucigrama miCrucigrama = new InterfazCrucigrama();
}
}
 
M

Mark Space

gaijinco said:
Hi!

I'm having a really frustrating problem with displaying images: the
problem is that when I created a GUI (using swing) the images doesn't
appears until I made the slightest change to the size of the window.

For the image, I'm using a JLabel with the setIcon() method.

I have tried all kinds of Layout Managers and all kind of combinations
of sizes for all elements (JFrame, JPanel's, JLabel's, etc) but
nothing seems to work.

Does somebody knows what may be happening?

Thank you very much!

This is my exact code:

public class InterfazCrucigrama extends JFrame {

private JLabel panelImagen;

public InterfazCrucigrama() {
setTitle( "Crucigrama" );
getContentPane( ).setLayout( new BorderLayout(10,10) );
setSize( 800, 600 );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setVisible(true);

panelImagen = new JLabel("");
panelImagen.setIcon(new ImageIcon("data/imagenes/
titulo.png"));
getContentPane().add(panelImagen, BorderLayout.NORTH);
}

public static void main(String[] args) {
InterfazCrucigrama miCrucigrama = new InterfazCrucigrama();
}
}

I'm not an expert, but I think you have "setVisible" in the wrong spot.
Call that after all of the components get added.

Also, call pack() before setVisible but after all of the other
components have been added. pack() is the standard way of telling a
window that it's about ready to be drawn.
 
A

Andrew Thompson

gaijinco wrote:
...
Does somebody knows what may be happening?

Images are loaded asynchronously (after you first
ask for them).

Knute Johnson has some good examples of image
loading on his site.
<http://rabbitbrush.frazmtn.com/>

Check particularly the 'ImageObserver JApplet' link under
'How to load images'. I think that one will be close to
what you need.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,990
Messages
2,570,211
Members
46,796
Latest member
SteveBreed

Latest Threads

Top