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

problema de imagen y boton

Estas en el tema de problema de imagen y boton en el foro de Java en Foros del Web. tengo el siguiente codigo: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { Image image; JPanel frame = new JPanel(); image = Toolkit.getDefaultToolkit().getImage("icon1.gif" ); jPanel1.getGraphics().drawImage(image,0,0,75,43,th is); } donde al ...
  #1 (permalink)  
Antiguo 13/06/2006, 16:58
 
Fecha de Ingreso: diciembre-2005
Mensajes: 2
Antigüedad: 18 años, 4 meses
Puntos: 0
problema de imagen y boton

tengo el siguiente codigo:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
Image image;
JPanel frame = new JPanel();
image = Toolkit.getDefaultToolkit().getImage("icon1.gif" );
jPanel1.getGraphics().drawImage(image,0,0,75,43,th is);
}

donde al oprimir jButton1 despliega la imagen icon1.gif sobre un jPanel de una aplicacion. Mi problema viene cuando oprimo el jButton1, ya que para que se vea una imagen de formato JPG debo de oprimirlo hasta 7 veces; en el caso de un GIF debo oprimirlo 2 veces ¿A que se debe eso? De antemano gracias.
  #2 (permalink)  
Antiguo 14/06/2006, 00:48
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
¿Has probado a marcar el componente modificado como invalido y hacerle que se repinte?
jPanel1.invalidate();
jPanel1.repaint();

o algunos de esos metodos. La idea es notificar al al thread que pinta el GUI que ese componente ha de ser pintado de nuevo.
  #3 (permalink)  
Antiguo 14/06/2006, 01:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Hola:

El método toolkit.getImage() termina "antes" de que la imagen esté realmente cargada. Si la pintas justo después, es posible que todavía no esté y no se pinta o incluso se pinta "parcialmente".

Habitualmente yo cargo las imagenes con la clase ImageIcon y luego imageIcon.getImage(), con lo que se soluciona el problema. Si estás en un Applet, usa el método getImage() del Applet.

Otro consejo es que heredes de JPanel y redefinas el método paint(Graphics) para dibujar ahí la imagen. Si no lo haces así, en cuanto redimensiones el panel, pases ventanas por encima, etc, etc. tendrás problemas de que no se repinta la imagen.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
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 01:43.