Imagenes en java. (Libreria Swing).

Bien ahora ingresaremos una imagen en una ventana, lo primero que tenemos que hacer para que se mas fácil mandar llamar a la imagen es crear una carpeta dentro de nuestro proyecto, esto lo aremos de la siguiente manera:

clic derecho en el Src de nuestro proyecto luego nos vamos a New y despues a Folder, asi como lo muestra la siguiente imagen:

Imgenes1

Después hacemos lo siguiente:

Imgenes2

y finalmente si todo salio bien, así se tiene que ver nuestro proyecto, un folder blanco con el nombre que ingresamos anteriormente:

Imgenes3

Bien, ahora lo que tenemos que hacer el copiar la imagen que queremos mostrar en la ventana de java y guardarla en el folder que acabamos de crear, solo copien y peguen la imagen. también se puede arrastrar la imagen asta el folder, una vez hecho eso así se vera nuestro proyecto con la imagen dentro de nuestro foldel:

Imgenes4

Nota: mi imagen se llama java.png en si proyecto aparecerá el nombre de la imagen que ustedes inserten en el folder.

Ahora pasamos a lo siguiente. creamos dos clases la primera sera la clase ventana en donde tendremos la imagen, la otra clase en la clase Main la cual nos servira para mandar llamar la clase anterior. una vez creada las clases así quedara el proyecto:

Imgenes5

bien ahora el código en la clase ventana sera el siguiente:


import java.awt.Image;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class Ventana extends JFrame{
private JPanel panelImagen;
private Icon img;
private JLabel lblImagen;


public Ventana() {


this.setTitle("Imagenes en JAVA");
this.setSize(400,400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(500,10);


imagen();

}

public void imagen(){
this.setLayout(null);


img= new ImageIcon(getClass().getResource("Imagenes/java.png"));


add(panelImagen = new JPanel());

add(lblImagen = new JLabel(img));
lblImagen.setBounds(90,10,200,250);  


panelImagen.add(lblImagen);
panelImagen.setBounds(0,0,500,300);


}



}


Explicando un poco el código:

Bien al principio tenemos que crear estos tres tipos de componentes:
[sourcecode language="php"]
private JPanel panelImagen;
private Icon img;
private JLabel lblImagen;
[/sourcecode]

El JPanel es para poder visualizar la imagen que almacenaremos en el JLabel, el Icon es para mandar llamar la imagen desde donde lo tenemos almacenado (en este caso lo tenemos en el folder llamado imágenes en mí caso) y el JLabel es en donde meteremos el Icon es decir la imagen, esto con el fin de poder manipularlo (moverlo, colocar bordes, etc...).

Bien seguimos, lo siguiente:


public Ventana() {


this.setTitle("Imagenes en JAVA");
this.setSize(400,400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
this.setLocation(500,10);


imagen();//metodo creado en donde mandamos llamar la imagen,

//se explica mas abajo.
}



Este es el constructor de de la clase ventana en donde le damos las características a la ventana en este orden: el titulo, el tamaño, que sea visible, que se termine la ejecución al cerrar la ventana, y su la posición en donde queremos la ventana, recuerden que esta clase la tenemos que extender JFrame como lo muestra el código de la clase Ventana, si no, no podrán usar las características mencionadas anteriormente.

Ahora el método imagen() que es creado debajo del constructor de la clase Ventana, queda de la siguiente manera:


public void imagen(){
this.setLayout(null);


img= new ImageIcon(getClass().getResource("Imagenes/java.png"));


add(panelImagen = new JPanel());


add(lblImagen = new JLabel(img));
lblImagen.setBounds(90,10,200,250);


panelImagen.add(lblImagen);
panelImagen.setBounds(0,0,500,300);


}


explicando un poco el método imagen:

Lo primero es poner el Layuout del método en null, ya que queremos acomodar nuestra imagen a nuestro gusto, esto lo hacemos de la siguiente manera:


this.setLayout(null);



Ahora con el componente de tipo Icon mandamos llamar por medio de la dirección (URL) de donde se encuentra la imagen.
Esto se realiza de la siguiente manera:


img= new ImageIcon(getClass().getResource("Imagenes/java.png"));


ahora mandamos instanciar el panel en donde mostraremos la imagen, esto lo hacemos de la siguiente manera:


add(panelImagen = new JPanel());


ahora instanciamos el label y le agregamos el componente de tipo Icon (nombre del componente creado: img) en donde ya se encuentra la dirección de la imagen, y con el setBounds colocamos el label en la posición en donde queramos (la posición se toma en cuenta dependiendo el tamaña del panel ya que el label lo agregaremos al panel.), y le damos el tamaño que se ajuste a nuestra imagen. esto de la siguiente manera:


add(lblImagen = new JLabel(img));
lblImagen.setBounds(90,10,200,250); 


Ahora, agregamos el label a nuestro panel, y colocamos el panel con el setBounds en la posición que se requiera, lo mas conveniente es colocar el panel al tamaño de la ventana, esto de la siguiente manera:


panelImagen.add(lblImagen);
panelImagen.setBounds(0,0,500,300);


y finalmente en la clase Main solo mandamos crear un objeto de tipo ventana y corremos el programa, en código de la case Main quedara de la siguiente manera:


public class Main {



public static void main(String[] args) {


Ventana v = new Ventana();
}

}



una vez ejecutado el código el resultado sera el siguiente:

imagenesfinal

y bien espero que les funcione es algo muy sencillo, :)
suerte y éxito.