Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Spring Framework | Web Services | BioInformatics | Java Server Faces | Jboss 3.0 tutorial | Hibernate 3.0 | XML
 
 
Hot Web Programming Job

 

Tutorial Categories: Ajax | Articles | JSP | Bioinformatics | Database | Free Books | Hibernate | J2EE | J2ME | Java | JavaScript | JDBC | JMS | Linux | MS Technology | PHP | RMI | Web-Services | Servlets | Struts | UML

[an error occurred while processing this directive]

Java Notes

Images - ImageIcon

javax.swing.ImageIcon is used for images, both to use on buttons and labels, and to draw in a graphics panel. The supported formats are .gif, .jpg, and .png.

Choice: Wait until loaded or overlap loading with other execution

Wait until loaded (recommended where timing is not critical)
This simple approach loads the image "synchronously", meaning that whenever you request an image to be loaded, the program waits until the image loading is finished. If you do this, you don't have the extra complication of using ImageObserver. For a small number of small images from disk, this is the best choice. The examples here are written in this style.
Overlap (use only for performance problems)
Start loading each image in its own thread, and proceed with other initialization. To check the status of the load (disks, and the Internet are so slow compared to the CPU), use ImageObserver. Unless you are loading many images, or a large image, over the Internet, I don't recommend the extra complication.

To load an ImageIcon from a URL

java.net.URL where = new URL("http://www.yahoo.com/logo.jpeg");
ImageIcon anotherIcon = new ImageIcon(where);

To load an ImageIcon from a file

A file name in an ImageIcon constructor specifies the file name relative to the location of the class file. This constructor doesn't return until the ImageIcon is completely loaded.

Warning: Just putting the file name or path in the ImageIcon constructor won't work in general for applets or executable jar files. See discussion of class loader in the NetBeans section below.

ImageIcon myIcon = new ImageIcon("images/myPic.gif");

Warning: Just putting the file name or path in the ImageIcon constructor won't work in general for applets, WebStart applications, and executable jar files. See below.

Bundling images in your .jar file using NetBeans and ClassLoader

Let's say you have a directory (cardimages) of images (cardimages/ad.gif, ...), and the program is in a package called cardplayer, and you're trying to load the image within the class Card.

  1. Your Java source files will be in the src/cardplayer directory, as is normal for a NetBeans project with a cardplayer package. Add the directory containing the images (cardimages) to the src/cardplayer directory, so you have src/cardplayer/cardimages/ad.gif, etc.
  2. ClassLoader. Using a file path is not possible when running a program that's in a jar file, especially if the program is being loaded as an applet or WebStart application. The way to find images that are bundled in the jar file is to ask the Java class loader, the code that loaded your program, to get the files. It knows where things are.
  3. Use the following code to load the images:
    ClassLoader cldr = this.getClass().getClassLoader();
    
    java.net.URL imageURL   = cldr.getResource("cardplayer/cardimages/ad.gif");
    ImageIcon aceOfDiamonds = new ImageIcon(imageURL);
    
  4. Clean and Build Project.
  5. The double-clickable jar file (located at dist/cardplayer.jar) can now be run, or the program can be executed in NetBeans.

To use an ImageIcon in a JButton

ImageIcon leftArrow = new ImageIcon("leftarrow.gif");
JButton left = new JButton(leftArrow);

To draw (paint) an ImageIcon

An ImageIcon, img, can be drawn on components (a JComponent or JPanel) using

   img.paintIcon(Component c, Graphics g, int x, int y);

Display the image on a subclass of JPanel used for graphics. Put the paintIcon call in the paintComponent method of that panel. To paint the ImageIcon img on the current panel (ie, this), use a call like:

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    img.paintIcon(this, g, 100, 100);
}

Other ImageIcon methods

You can find the width and height of an image with

int w = img.getIconWidth();
int h = img.getIconHeight();

Where to find icons (links are old)

Image webliography (links are old)

Facing Programming Problem?
Add This Tutorial To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 

Current Comments

0 comments so far (post your own) View All Comments Latest 10 Comments:

Leave your comment:

Name:

Email:

URL:

Title:

Comments:


Enter Code:

 

Note: Emails will not be visible or used in any way, and are not required. Please keep comments relevant. Any content deemed inappropriate or offensive may be edited and/or deleted.

No HTML code is allowed. Line breaks will be converted automatically. URLs will be auto-linked. Please use BBCode to format your text.

  JDO Tutorials
  EAI Articles
  Struts Tutorials
  Java Tutorials
  Java Certification

Tell A Friend
Your Friend Name
Search Tutorials

 

 
 
Browse all Java Tutorials
Java JSP Struts Servlets Hibernate XML
Ajax JDBC EJB MySQL JavaScript JSF
Maven2 Tutorial JEE5 Tutorial Java Threading Tutorial Photoshop Tutorials Linux Technology
Technology Revolutions Eclipse Spring Tutorial Bioinformatics Tutorials Tools SQL
 

Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Search Engine | News Archive | Jboss 3.0 tutorial | Free Linux CD's | Forum | Blogs

About Us | Advertising On RoseIndia.net  | Site Map

India News

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2007. All rights reserved.