Java - paint

 
Vista:

paint

Publicado por Ana (7 intervenciones) el 05/07/2007 23:09:49
Hola,
mi pregunta es la siguiente: tengo una clase que hereda de JLabel para previsualizar una imagen que se selecciona desde un JFileChooser, sin embargo no se muestra nada más aceptar, sino después de minimizar o hacer desaparecer la ventana aparece. Utilizo el método update del JLabel para volver a llamar al método paint(), pero no funciona. Escribo el código para ver si alguien encuentra el error.

--->Clase Previsualizador:

public class Previsualizador extends JLabel
{
public ImageIcon img = null;

public Previsualizador()
{
super();
}

public void setImagen(ImageIcon img){this.img=img;}

public void paint(Graphics g)
{
if(img!=null)
this.getGraphics().drawImage(img.getImage(), 0, 0, 100, 100, null);
}
}

--->Método que muestra el cuadro de diálogo (visorFoto es de tipo Previsualizador):

public void dialogoFoto(ActionEvent evt)
{
JFileChooser fileChooser = null;
String fileName = null;
URL urlImagen = null;

if (fileChooser == null)
{
fileChooser = new JFileChooser();
if((evt.getSource() == botonFoto)||(evt.getSource() == botonFoto))
fileChooser.setFileFilter(new FiltroDeJPG());

}
int retVal = fileChooser.showOpenDialog(null);

if (retVal == fileChooser.APPROVE_OPTION)
{
fileName = fileChooser.getSelectedFile().getAbsolutePath();
try
{
urlImagen = fileChooser.getSelectedFile().toURI().toURL();
campoImagen.setText(urlImagen.getPath());
foto=new ImageIcon(urlImagen);
visorFoto.setImagen(foto);
visorFoto.update(visorFoto.getGraphics());

}
catch (Exception ioe){
ioe.printStackTrace();
}
}
visorFoto.update(visorFoto.getGraphics());
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder