Imagenes en Java

Publicado el 04 enero 2014 por Cristian David Henao Hoyos @chenaooo
Quiero iniciar el año con una entrada muy simple sobre algo útil y básico cuando queremos personalizar, darle algún toque especial a nuestros proyectos entre muchas otras razones.....
Vamos a ver rápidamente como vincular imagenes en nuestras aplicaciones....algo corto pero sustancioso.....
El Ejemplo.
Como lo mencioné esta es una entrada de las básicas, tan solo nos enfocaremos en como vincular imagenes a nuestra aplicación..........tenemos un JFrame que contendrá un JLabel al cual le asignaremos una imagen de fondo, así como un botón de salir con un icono representativo...

La Aplicación.
Para esta aplicación tan solo utilizaremos 2 clases, la clase principal y la clase Ventana que carga la imagen anterior........adicionalmente tendremos un paquete imagenes donde agruparemos todas las imagenes con las que vamos a trabajar....

La imagen de Java la alojaremos en un JLabel usando para esto el método setIcon en el cual instanciaremos un objeto de tipo ImageIcon que buscaremos dentro del proyecto en la ruta definida........de la siguiente manera:
JLabel labelImagen;
labelImagen=new JLabel();
labelImagen.setBounds(50,70,400,330);
labelImagen.setIcon(new ImageIcon(getClass().
getResource("/imagenes/java.jpg")));
labelImagen.setBorder(javax.swing.BorderFactory.createBevelBorder
(javax.swing.border.BevelBorder.RAISED));

Adicionalmente usando el método setBorder le damos un estilo al jLabel para que tenga un borde con relieve.
Como vemos el método setIcon nos permite alojar una imagen en el componente al que se lo asignemos, la imagen del botón se realiza de la misma manera.......
Clase Principal.
En esta clase instanciamos la ventana de nuestra aplicación y hacemos el llamado para que sea visible.
package principal;
import ventana.VentanaPrincipal;
/**
* @author HENAO
*
*/
public class Principal {
public static void main(String[] args) {
/**Declaramos el objeto*/
VentanaPrincipal miVentanaPrincipal;
/**Instanciamos el objeto*/
miVentanaPrincipal= new VentanaPrincipal();
/**Hacemos que se cargue la ventana*/
miVentanaPrincipal.setVisible(true);
}
}

Clase VentanaPrincipal.
Esta clase corresponde a la interfaz de nuestra aplicación.
package ventana;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class VentanaPrincipal extends JFrame implements ActionListener {
private Container contenedor;//declaramos el contenedor
JButton salir;//declaramos el objeto Boton
JLabel labelTitulo;//declaramos el objeto Label
JLabel labelImagen;
public VentanaPrincipal(){
/**permite iniciar las propiedades de los componentes*/
iniciarComponentes();
/**Asigna un titulo a la barra de titulo*/
setTitle("CoDejaVu : Imagenes en Java");
/**tamaño de la ventana*/
setSize(500,520);
/**pone la ventana en el Centro de la pantalla*/
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void iniciarComponentes() {
contenedor=getContentPane();//instanciamos el contenedor
/**con esto definmos nosotros mismos los tamaños y posicion
* de los componentes*/
contenedor.setLayout(null);

/**Propiedades del boton, lo instanciamos, posicionamos y
* activamos los eventos*/
salir=new JButton();
salir.setBounds(390,430,60,30);
salir.setIcon(new ImageIcon(getClass().getResource("/imagenes/salir.gif")));
salir.addActionListener(this);

labelImagen=new JLabel();
labelImagen.setBounds(50,70,400,330);
labelImagen.setIcon(new ImageIcon(getClass().
getResource("/imagenes/java.jpg")));
labelImagen.setBorder(javax.swing.BorderFactory.createBevelBorder
(javax.swing.border.BevelBorder.RAISED));

/**Propiedades del Label, lo instanciamos, posicionamos y
* activamos los eventos*/
labelTitulo= new JLabel();
labelTitulo.setText("setIcon");
labelTitulo.setFont(new java.awt.Font("Comic Sans MS", 0, 28));
labelTitulo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
labelTitulo.setBorder(javax.swing.BorderFactory.createBevelBorder
(javax.swing.border.BevelBorder.LOWERED));
labelTitulo.setBounds(100, 10, 300, 40);

/**Agregamos los componentes al Contenedor*/
contenedor.add(labelTitulo);
contenedor.add(salir);
contenedor.add(labelImagen);
}
/**Agregamos el evento al momento de llamar la otra ventana*/
@Override
public void actionPerformed(ActionEvent evento) {
if (evento.getSource()==salir)
{
int respuesta = JOptionPane.showConfirmDialog(this,
"Esta seguro que desea salir?", "Confirmación",
JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_NO_OPTION)
{
System.exit(0);
}
}
}
}
con el botón salir aplicamos uno de los ejemplos mostrados en la entrada anterior donde por medio de un JOptionPane solicitamos que se confirme si deseamos o no salir del sistema.

Y Listo!!! vimos de una forma rápida y simple como vincular imagenes en java, en próximas entradas veremos otros ejemplos trabajando con imagenes.....
También te podría Interesar.
  • Ejemplo JList
  • Ejemplo JFileChooser
  • Ejemplo JTree.  
  • Ejemplo Patrón de Diseño MVC
  • Ejemplo JColorChooser 
  • ¿String Vrs StringBuffer Vrs StringBuilder?
  • Ejemplo Pátron Observer.
  • Ejemplo Modelo Vista Controlador.
  • Que son los Patrones de Diseño ?
  • Manejo de Excepciones en Java
  • Conceptos Básicos de Programación Orientada a Objetos.


¿Hay algo que quieras anexar o comentar sobre esta entrada?  no dudes en hacerlo.....y si te gustó...... te invito a compartir y
 Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)