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"));
» Compra publicidad aquí: Enlace de texto
Artículos relacionados:
- Búsqueda en un JTree
Hace algún tiempo buscábamos información de cómo crear fácilmente un... - Colección gratis de íconos dibujados a mano
177Designs nos ofrece esta interesante colección de íconos gratis con... - ObservableList y ObservableListHelper
Con la introducción de Beans Binding, resulta práctico la separación... - Colección de Logos, íconos y botones para la web
Aquí te presentamos una colección de diversos elementos para la...