View Single Post
  #2 (permalink)  
Old 12-06-2007, 10:07 PM
hardwired hardwired is offline
Senior Member
 
Join Date: Jul 2007
Posts: 1,222
hardwired is on a distinguished road
Using ImageIcon
Code:
Code : lName.setIcon("./IMG/name_icon.jpg"); Error : setIcon(javax.swing.Icon) in javax.swing.JLabel cannot be applied to (java.lang.String)
JLabel.setIcon method takes the interface type Icon which is implemented by the ImageIcon class. You find this by looking up the setIcon method in the JLabel class api. Follow the link (in the arguemnt) to the Icon interface, note that ImageIcon is an implementing class, follow the link to the ImageIcon api and check out the class constructors: there are 9 in my j2se 1.5 javadocs.
So try something like:
Code:
ImageIcon icon = new ImageIcon("IMG/name_icon.jpg"); System.out.println("icon = " + icon); // test for null lName.setIcon(icon); // or URL url = getClass().getResource("IMG/name_icon.jpg"); System.out.println("url = " + url); iName.setIcon(new ImageIcon(url)); // or lName.setIcon(new ImageIcon(new File("IMG/name_icon.jpg"));
Code:
Code : Image icon = createImageIcon("./IMG/name_icon.jpg"); lName = new JLabel(icon); Error : cannot find symbol method createImageIcon(java.lang.String) cannot find symbol constructor JLabel(java.awt.Image)
Check the argument type for the createImageIcon method you are calling. The compiler says it does not take a String argument.
Also, the type of "icon" is wrong according to the compiler. You have declared the "icon" variable as type Image. This type declaration must match the return type declaration of the createImageIcon method you are calling. From the name of the method I would suspect/infer that its return type is ImageIcon, ie, it may have a method signature like this:
Code:
public ImageIcon createImageIcon(args_of_some_type) { ImageIcon icon = new ImageIcon(some_args); ... return icon; } // Therefore: ImageIcon icon = createImageIcon(args);
ImageIcon is an older (j2se 1.2) way of loading images and does not report trouble. Its api and the underlying MediaTracker api provide methods you can use to ask about loading success. The newer way to load images (j2se 1.4+) is ImageIO.read methods. See api for options. It does report trouble.
Reply With Quote