Foros del Web » Programación para mayores de 30 ;) » Java »

Carga de imágenes

Estas en el tema de Carga de imágenes en el foro de Java en Foros del Web. Hola! Estoy realizando un programa que consite en una biblioteca de terminos. El programa accede a una base de datos que contiene la definición del ...
  #1 (permalink)  
Antiguo 14/05/2010, 12:01
Avatar de lory_25  
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Carga de imágenes

Hola!

Estoy realizando un programa que consite en una biblioteca de terminos. El programa accede a una base de datos que contiene la definición del termino y la ruta de una imagen. Quiero que cada vez que pulse un botón la imagen cambie.
He sido capaz de insertar la imagen, pero de esa forma no se puede cambiar de forma "dinámica".

Muchas gracias ^_^
  #2 (permalink)  
Antiguo 14/05/2010, 14:25
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Carga de imágenes

¿Por qué no se puede cambiar de forma dinámica? ¿Cómo has insertado la imagen?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 15/05/2010, 08:27
Avatar de lory_25  
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Carga de imágenes

En primer lugar cree un panel llamado Fondos que será donde luego inserte la imagen

public class Fondos extends JPanel {

private static final long serialVersionUID = 1L;
private String str = null; //Ruta de la imagen

public Fondos(String s) {
super();
initialize();
this.setSize(100,100);
str = s;
}
private void initialize() {
this.setSize(300, 200);
this.setLayout(new GridBagLayout());
}

public void paintComponent (Graphics g)
{
Dimension tam = getSize();
ImageIcon imagenFondo = new ImageIcon (getClass().getResource(str));
g.drawImage(imagenFondo.getImage(),0, 0, tam.width, tam.height, null);
setOpaque(false);
super.paintComponent(g);
}

}

--------------------------------------------------------------------------------

En la ventana principal, donde quiero que se muestre la imagen:

private JPanel pnlPestB = null; //Panel principal
...

pnlPestB.add(getImagen(), null);

....

private Fondos getImagen() {
if (ImagenB == null) {
ImagenB = new Fondos("/los/imagen/Imagen1.jpg");
ImagenB.setBounds(new Rectangle(349, 75, 267, 270));
}
return ImagenB;
}


--------------------------------------

asi consigo que me incluya la imagen en el panel principal, pero lo que yo realmnte necesito es que cuando pulse un boton, según el termino que este seleccionado coja una ruta de la base de datos y cambie la imagen actual por la de la ruta deseada :S

se que es un poco lio

gracias por tu tiempo

-Lau-
  #4 (permalink)  
Antiguo 15/05/2010, 08:27
Avatar de lory_25  
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Carga de imágenes

Si lo ves mejor lo puedo poner con el highlight de javascript si quieres :)
  #5 (permalink)  
Antiguo 15/05/2010, 09:14
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Carga de imágenes

A la clase Fondos ponle un método setStr(String nuevoPath) con el que puedas cambiar el valor de str. Cuando pulses el botón, coge la ruta de la base de datos, ponla en str llamando a ese método y luego llama al método repaint() de Fondos para que se repinte.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 16/05/2010, 05:58
Avatar de lory_25  
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Carga de imágenes

Gracias, ahora mismo voy a hacerlo ^_^
  #7 (permalink)  
Antiguo 16/05/2010, 06:15
Avatar de lory_25  
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Carga de imágenes

Muchisimas gracias, eres genial ^^

Etiquetas: carga
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.