Home Java Example Java Swing Graphics2D Show Icon Displayer



Show Icon Displayer
Posted on: October 14, 2008 at 12:00 AM
An icon is an image, picture, or representation. To display the icon, we have defined an image.

Show Icon Displayer

     

In this section, you will studied how to display a single icon one or more times in a row.

An icon  is an image, picture, or representation. To display the icon, we have defined an image. The class ImageIcon is responsible to paint the icons from Images. The MediaTracker preloads the images that are created from a URL, filename or byte array.

The variable space is defined to set the space between the images. The method createEmptyBorder(this.space, this.space,this.space, this.space) creates an empty border that takes up space. The class Insets defines the borders of a container which specifies the space at each of its edges that a container must leave .

The method getPreferredSize()  is used to determine how the layout should be arranged. The method getClipBounds() gets a rectangle and encloses the clipping region of the Graphics object. To give the blending and transparency effects with graphics and images for combining source and destination pixels, the class AlphaComposite is used.

Following code returns an ImageIcon:

protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = IconDisplayerExample.class.getResource(path);
return new ImageIcon(imgURL);
}

Here is the code of IconDisplayerExample.java

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

public class IconDisplayerExample extends JComponent {
  private Icon icon;
  private int numOfImages = 2;
  private int space = 5
  private Rectangle rect1 = new Rectangle();
  private Rectangle rect2 = new Rectangle();
public IconDisplayerExample(Icon icon, int numOfImages, int space) {
  this.icon = icon;
  if (numOfImages > 0) {
  this.numOfImages = numOfImages;
  }
  if (this.space > 0) {
  setBorder(BorderFactory.createEmptyBorder(this.space, this.space,
  this.space, this.space));
  }
  }
  public Dimension getPreferredSize() {
  Insets insets = getInsets();
  return new Dimension(icon.getIconWidth() * numOfImages + space
  * (numOfImages - 1) + insets.left + insets.right,
  icon.getIconHeight() + insets.top + insets.bottom);
 }
  public Dimension getMinimumSize() {
  Insets insets = getInsets();
  return new Dimension(icon.getIconWidth() + insets.left
  + insets.right, icon.getIconHeight() + insets.top
  + insets.bottom);
 }
  protected void paintComponent(Graphics g) {
  Insets insets = getInsets();
  int iconWidth = icon.getIconWidth();
  int p = getWidth() - insets.right - iconWidth;
  int q = insets.top;
  boolean shaded = false;
  Graphics2D g2 = (Graphics2D) g.create();
  g.getClipBounds(rect2);
  while (p >= insets.left) {
  rect1.setBounds(p, q, iconWidth, icon
  .getIconHeight());
  if (rect1.intersects(rect2)) {
  icon.paintIcon(this, g2, p, q);
  }
  p -= (iconWidth + space);
  if (!shaded) {
  g2.setComposite(AlphaComposite.getInstance(
  AlphaComposite.SRC_OVER, 0.1f));
  shaded = true;
  }
  }
  g2.dispose(); 
  }
 protected static ImageIcon createImageIcon(String path) {
  java.net.URL imgURL = IconDisplayerExample.class.getResource(path);
  return new ImageIcon(imgURL);
 }
 private static void createAndShowGUI() {
  JFrame frame = new JFrame("Icon Displayer Example");
  frame.setSize(400,150);
  ImageIcon imageIcon = createImageIcon("alert.gif");
  IconDisplayerExample iconDisplayer = new IconDisplayerExample(
   imageIcon, 
6, -1);
  frame.getContentPane().add(iconDisplayer, BorderLayout.CENTER);
  frame.setVisible(true);
  }
  public static void main(String[] args) {
  javax.swing.SwingUtilities.invokeLater(new Runnable() {
  public void run() {
  createAndShowGUI();
  }
  });
  }
}

Output will be displayed as:

Download Source Code

Related Tags for Show Icon Displayer:
cimagefilearrayurlclassimagesioloadiconsdisplayiconmediatracnamebyteintaicreatedefinereloadfilenamepaintpicturetoedipresentationpicrackeilpreloadrepresentationadssplimfrominasmntplaytrispadclesagepiicomeackdefinedtrackrelsspcreatedespatrackishapreraypaindiaeaarconstrackerreprssthavatihatdispfinmageloadsplpronomo


More Tutorials from this section

Ask Questions?    Discuss: Show Icon Displayer  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.