Newbie Problem with Java Label



Hi every1, I'm new to java and trying to learn it by doing it ...

The problem I'm having is that I'm trying to display an image (which
can only be displayed inside a label ... plz. correct me if I'm wrong).

The label's text is displaying but not the picture.
below is the code (it is same code from one of the samples from Sun's
website)

Any help would be really appreciated. Thanks


import java.awt.GridLayout;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/*
* SwingLabelDemo.java is a 1.4 application that needs one other file:
* images/middle.gif
*/
public class SwingLabelDemo extends JPanel {
public SwingLabelDemo() {
super(new GridLayout(3,1)); //3 rows, 1 column
JLabel label1, label2, label3;

ImageIcon icon = createImageIcon("images/mapImage1.gif",
"a pretty but meaningless
splat");

// System.out.println(icon); **** I put this here to see what it is
grabing ...
//Create the first label.
label1 = new JLabel("Image and Text",
icon,
JLabel.CENTER);
//Set the position of its text, relative to its icon:
label1.setVerticalTextPosition(JLabel.BOTTOM);
label1.setHorizontalTextPosition(JLabel.CENTER);
// label1.setPreferredSize( new Dimension(45, 32 ) );

//Create the other labels.
label2 = new JLabel("Text-Only Label");
label3 = new JLabel(icon);

//Create tool tips, for the heck of it.
label1.setToolTipText("A label containing both image and
text");
label2.setToolTipText("A label containing only text");
label3.setToolTipText("A label containing only an image");

//Add the labels.
add(label1);
add(label2);
add(label3);
}

/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path,
String description) {
java.net.URL imgURL = SwingLabelDemo.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}

/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);

//Create and set up the window.
JFrame frame = new JFrame("SwingLabelDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.
SwingLabelDemo newContentPane = new SwingLabelDemo();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);

//Display the window.
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

.



Relevant Pages