Software Guru Conference & Expo 2014

Cargar una imagen en un JPanel en netbeans

Hola, estoy usando el NetBeans 6.0.1 para desarrollar un proyecto, pero necesito cargar una imagen en un jpanel, ya intenté usar el jpanel en una clase aparte pero no funciona, no carga el jpanel en el form, porfa si alguien tiene una sugerencia o me de referencia de como cargar la imagen en el jpanel de un jframe porfa se lo agradeceré.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

En Mi Caso Yo Lo Que Hago Es

En Mi Caso Yo Lo Que Hago Es Dibujar en El Panel Mediante el metodo paintComponent(Graphics g) como se ve acontinuacion

public void paintComponent(Graphics g) {
Dimension tamanio = getSize();
ImageIcon fondo = new ImageIcon(getClass().getResource("imagenes/Bienvenida.png"));
g.drawImage(fondo.getImage(), 0, 0, tamanio.width, tamanio.height, null);
setOpaque(false);
super.paintComponent(g);
}

espero te sirva

Orale!!!!

Oye xerxes85 gracias, me sirvió el código que me diste, ya ta la imagen cargada, lo que si tengo que ver que tenga un autoscroll para que no se tenga que redimensionar el frame, pero me parece que con el autoscroll, lo voy a checar, gracias.

Para Eso Estamos

Que Bueno Que Te Sirvio, Para Eso Son Estas Cominidades Para Apoyarnos, Cuaquier Ayuda Que Necesites Ya Sabes. En caso De Que No Te Funcione Lo Del Scroll Me Dices Para Ver Como Puedo Ayudarte

consulta

Que tal amigos.. excelente foro..!!
Tengo la siguiente consulta, necesito cargar imagenes en un JPanel medinate el JFileChooser(), ya cargo la imagen, pero cuando cargo una nueva... no muestra la nueva.. se queda la q en un principio se cargo, estoy pensando que el error, pueda ser en las llamadas a los métodos.. agrego el código..
JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileNameExtensionFilter("Archivos de imagen", "jpg", "jpeg", "png", "gif"));
jTextPane2.setText("Cargando Imágen...");
int opcion = fc.showDialog(this, "Abrir");

if (opcion == JFileChooser.APPROVE_OPTION)
{
File file = fc.getSelectedFile();
ruta=file.getPath();
imagen= Toolkit.getDefaultToolkit().getImage(ruta);
MediaTracker tracker = new MediaTracker( this );

tracker.addImage( imagen,1 );

try {
if( !tracker.waitForID( 1,100000 ) ) {
System.out.println( "Error en la carga de la imagen" );
System.exit( 1 );
}
} catch( InterruptedException e ) {
System.out.println( e );
}
//this.mostrarImagen(file);
this.mostrarImagen(file);
this.cargaDirectorio(file.getParent());
jTextPane2.setText("Imagén Cargada");

try {
if( !tracker.waitForID( 1,100000 ) ) {
System.out.println( "Error en la carga de la imagen" );
System.exit( 1 );
}
} catch( InterruptedException e ) {
System.out.println( e );
}

System.out.println("La ruta de la Imagen es:"+ruta);
w=imagen.getWidth(this);
h=imagen.getHeight(this);
System.out.println("Ancho"+this.w);
System.out.println("Alto"+h);
System.out.println("Cantidad de Pixels are"+w*h);
}

private void mostrarImagen(File file)
{
PanelImagen imgPanel = new PanelImagen(file, this.pnlImagen.getWidth(), this.pnlImagen.getHeight());
this.pnlImagen.add(imgPanel);
System.out.println("Ancho"+this.w);
System.out.println("Alto"+h);
System.out.println("Cantidad de Pixels are"+w*h);
System.out.println("hola");
this.repaint();
}

private void cargaDirectorio(String folder)
{
File dir = new File(folder);
if (dir.isDirectory())
{
this.fotos = dir.listFiles(new FilenameFilter()
{

public boolean accept(File file, String nombre)
{
if (nombre.endsWith(".jpg") ||
nombre.endsWith(".jpeg") ||
nombre.endsWith(".gif") ||
nombre.endsWith(".png"))
{
return true;
}
return false;
}
});
}
for (int i = 0; i < fotos.length; i++)
{
System.out.println(fotos[i]);

}
}

como veran.. esas lineas son las q empleo para cargar las imagenes.. hay unas líneas de impresion a pantalla q las ocupe como prueba..
saludos
jc
saludos..

Imagen de Nopalin

que necesitas de la imagen?

Si la imagen es en un tamaño aceptable y no es para edicion ni nada.. puedes utilizar un JLabel con su propiedad setIcon, luego cargar la imagen con un ImageIcon, y así el JLabel te la muestra, lo malo es que siempre la muestra en su tamaño actual y no es apta para mostrarla en otro tamaño

sobres

Imagen de Zerart

Hola, GRacias

Que tal me registre en esta comunidad por lo que veo es muy buena. TEngo el problema de insertar imagenes en el jpanel.

El cual solucione como dice Nopalin, con el label.

ay el Problema cuando quiero agregar otra imagen en otro lado no puedo modificar su tamaño. POrfavor.

Probe con el codigo, pero la verdad soy novato y no sabia como utilizarlo. Utilizo el Netbeans 6.5.

Gracias

Imagen de Aaron

Mostrar imagen dentro de un JPanel

Hola, hace un momento estuve explorando el contenido de la página e hice mi primer comentario, ahora expongo mi primer aporte espero les sea útil.

Para mostrar una imagen dentro de un panel, búscando en la red me encontre con la siguiente libreria de Swing, llamada SwingX, misma que pueden descargar desde el siguiente enlace http://swinglabs.org/downloads.jsp ; esta libreria contiene algunos componentes que estoy seguro les va a ser de mucha utilidad (Si usan el ide netbeans podran arrastrar los componentes hacia su área de trabajo). Es dentro de esta colección de componentes donde se encuentra el JXImagePanel el cual nos permite insertar en su contenedor una imagen de fondo.

Para ello necesitan:
- Descargar y guardar en su equipo la libreria SwingX de enlace: http://swinglabs.org/downloads.jsp
---------AGREGAR LA LIBRERIA -------------------------------------------------------------------
- Abrir el ide del netbeans
- Ir a la opción "Tools" de la barra del menú, dar clic.
- Seleccionar la opción "Palette" de menú (Se mostrara otro submenú) y
- Dar clic en la opción " Swing/AWT Component"
- Se mostrara una venta de dialogo " Palette Manager"
- Presionar el botón " New Category..." , aquí se desplegara un cuadro de dialogo solicitando el nombre para la nueva categoría.
asignamos un nombre y presionamos "OK"
- Add from JAR...
- Buscamos el archivo jar que descargamos
- Seleccionamos los componentes que vamos a agregar ( Agregamos todos los componentes )
- seleccionamos la categiria que acabamos de crear y presionamos el botón
- seleccionamos la categiria que acabamos de crear y presionamos el botón
- fin

- Una vez que se ha agregado la libreria swingX podemos agregar los componentes desde la paleta de componentes

Aqui les dejo una clase que elabore y me ha funcionado bien al momento de utilizar el JXImagePanel de la libreria SwingX

Pareciera ser muchos los pasos a seguir para implementarlo pero en realidad son sencillo, si gustan les puedo hacer un minimanual, ¿Cómo se los enviaria?

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import org.jdesktop.swingx.JXImagePanel;


/**
* @nombre : Agente_imagen.java
* @descripción : Clase que proporciona las herramientas para insertar una imagen
* dentro un panel (JXImagePanel).
* @creado : 4 de Enero del 2009.
* @author : Aarón
**/

public class Agente_imagen {

public Agente_imagen(){

}//fin constructor.

/*Retornar una imagen tipo Image dada una url.*/

public Image getImagen(String url){

Image imagen;
BufferedImage bufferedImage = null;

//Realizamos la lectura del archivo.

File archivo = new File( url );
try {
bufferedImage = (ImageIO.read(archivo));
} catch (IOException ex) {
Logger.getLogger(Agente_imagen.class.getName()).log(Level.SEVERE, null, ex);
}

imagen = bufferedImage;

return imagen;

}//fin mètodo: getImagen()..

/*Inserta una imagen dentro de un ImagePanel a partir de una url proporcionada
y ajusta la imagen al tamaño inicial del panel, en este caso es un JXImagePanel
de la libreria swingx*/

public void setImageinImagePanel(String url, JXImagePanel panel){
//Inicializamos nuestra variable.
JXImagePanel paneldeImagen = panel;
Image imagen = null;
paneldeImagen.setImage(null);

//Obtenemos la imagen a partir de la url proporcionada.
imagen = getImagen(url);

//Obtenemos el ancho y alto del panel el caul no servira para redimen---
//sionar a la imagen.

int ancho = panel.getWidth();
int alto = panel.getHeight();
imagen = redimensionarImagen(imagen, ancho, alto);
//Insertamos la imagen redimensionada en el panel.
paneldeImagen.setImage(imagen);
}//Fin metodo: setImageinImagePanel.

/*Inserta una imagen tipo Image dentro de un ImagePanel, ajusta la imagen al
tamaño inicial del panel.*/

public void setImageinImagePanel(Image imagen, JXImagePanel panel){
JXImagePanel paneldeImagen = panel;
paneldeImagen.setImage(null);

paneldeImagen.setImage(imagen);
}//fin método: setImageinImagePanel.

/*Retornar una imagen tipo Image, redimensionada, apartir de los parametros -
alto y ancho proporcionados. */

public Image redimensionarImagen(Image imagen, int ancho, int alto) {
return imagen.getScaledInstance(ancho, alto, Image.SCALE_AREA_AVERAGING);
}//FIN: redimensionarImagen.

}//Fin clase: Agente_imagen

Saludos

Imagen de linuxerito

chevere

Bueno esta chevere lo que posteaste asi deben postear otros

pilas genericas

hola amigos tengo un problemita quiero saber como puedo cargar o meter imagenes a mi pila generica, quiero hacer el solitario en la estructura pilas dinamicas gracias espero sus ayudas