Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > redimensionar imagen en jlabel redimensionable

Hola compañeros, realizo una nueva consulta que me está dando problemas. Me gustaría redimensionar una imagen cada vez que el jlabel cambie de tamaño, la cuestión es parece complicarse debido a que el jlabel lo ajusto desde el editor gráfico para que se redimensione. La verdad que ya había buscado información sobre este tema, y he recopilado muchas formas de redimensionar la imagen (hasta 6 formas), pero ninguna funciona correctamente. Por sencillez prefería el siguiente:

private void jLabel1ComponentResized(java.awt.event.ComponentEvent evt) {
Image image = new ImageIcon(this.getClass().getResource(
"/imagenes/imagen.JPG")).getImage();
BufferedImage resizedImage = new BufferedImage(
jLabel1.getWidth(),
jLabel1.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = resizedImage.createGraphics();
g2d.setRenderingHint(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
g2d.drawImage(image, 0, 0, jLabel1.getWidth(), jLabel1.getHeight(), null);
ImageIcon icon = new ImageIcon(resizedImage);
g2d.dispose();
jLabel1.setIcon(icon);
}

La cuestión es que si incluyo "el método" en un evento del tipo ComponentResized la pantalla no deja de crecer y crecer xD y si lo incluyo en un hilo, por extraño que parezca este sólo se ejecuta una vez ¿?. En fin no se. ¿como puede ajustar la imagen al jlabel que tomará diferentes tamaños dependiendo del tamaño de la pantalla? Ayuda por favor.

mayo 7, 2015 | Registered Commenterjdavid

Obvio pero se me olvidaba comentar que utilizo netbeans.

Aprobecho para poner un método incluso más simple:
ImageIcon imagen = new ImageIcon(getClass().getResource(
"/imagenes/imagen.JPG"));
Icon icono = new ImageIcon(imagen.getImage().getScaledInstance(
jLabel1.getWidth(),
jLabel1.getHeight(),
Image.SCALE_DEFAULT));
jLabel1.setIcon(icono);

mayo 7, 2015 | Registered Commenterjdavid