Cargar íconos en Java con ImageIconLoader

Publicidad

ImageIconLoader es una clase que permite cargar un ImageIcon fácilmente, mediante una operación estática. El ícono cargado sirve para mostrarse en cualquier componente que soporte íconos de Swing, por ejemplo.

Lo único que hay que hacer es llamar a ImageIconLoader.getImageIcon() pasando una ruta como parámetro. En caso que la imagen no exista, se muestra una cruz. Esto evita que por un mísero ícono tengamos que soportar algún NullPointerException.

package org.weblatam.swing;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.ImageIcon;

public class ImageIconLoader {

    public ImageIconLoader() {
    }

    static public ImageIcon getImageIcon(String path)
    {
        java.net.URL imageURL = ImageIconLoader.class.getResource(path);
        if (imageURL != null){
            ImageIcon icon = new ImageIcon(imageURL);
            return icon;
        }
        return new ImageIconLoader.MissingIcon();
    }

    static class MissingIcon extends ImageIcon {
        private int width = 16;
        private int height = 16;
        private BasicStroke stroke = new BasicStroke(4);

        public void paintIcon(Component c, Graphics g, int x, int y) {
            Graphics2D g2d = (Graphics2D) g.create();

            g2d.setColor(Color.WHITE);
            g2d.fillRect(x + 1, y + 1, width - 2, height - 2);

            g2d.setColor(Color.BLACK);
            g2d.drawRect(x + 1, y + 1, width - 2, height - 2);

            g2d.setColor(Color.RED);

            g2d.setStroke(stroke);
            g2d.drawLine(x + 10, y + 10, x + width - 10, y + height - 10);
            g2d.drawLine(x + 10, y + height - 10, x + width - 10, y + 10);

            g2d.dispose();
        }

        public int getIconWidth() {
            return width;
        }

        public int getIconHeight() {
            return height;
        }
    }
}

La forma de uso es muy sencilla, un ejemplo se incluye a continuación:

menuItemStatisticsTable.setIcon(ImageIconLoader.getImageIcon("/resources/images/statistics.png"));
Related Posts Plugin for WordPress, Blogger...

Artículos relacionados:

  1. Búsqueda en un JTree
    Hace algún tiempo buscábamos información de cómo crear fácilmente un...
  2. Colección gratis de íconos dibujados a mano
    177Designs nos ofrece esta interesante colección de íconos gratis con...
  3. ObservableList y ObservableListHelper
    Con la introducción de Beans Binding, resulta práctico la separación...
  4. Colección de Logos, íconos y botones para la web
    Aquí te presentamos una colección de diversos elementos para la...

Cargar íconos en Java con ImageIconLoader se encuentra en Otros usa los siguientes tags:

 

Sin comentarios. ¿Quieres ser el primero en comentar?

Dejar un comentario