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());
}
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


0