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. Colección gratis de íconos dibujados a mano
    177Designs nos ofrece esta interesante colección de íconos gratis con...
  2. ¿Por qué WebLatam es tan querido por Google?
    Próximamente revelaremos por qué WebLatam está siendo “querido” por Google....
  3. ObservableList y ObservableListHelper
    Con la introducción de Beans Binding, resulta práctico la separación...

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