hola vereis,
Tengo una aplicacion en java que muestra unas imagenes de un directorio. La aplicación tiene dos botones para pasar a la imagen siguiente o a la anterior.
Ahora necesito hacer un zoom, con el que al hacer click con el boton izquierdo del raton la imagen se acerque y con el boton derecho se aleje, pero no se como implementarlo.
Os dejo el codigo de la clase que contien el panel que muestra las imagenes:
Código HTML:
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class PanelImagen extends JPanel {
String dir;
String[] listaFicheros;
File carpeta;
String path;
int fotoactual;
private Image imagen1;
private Image imagen2;
Dimension size;
Graphics gimagen1;
Toolkit toolkit;
PanelImagen() {
fotoactual = 0;
dir = "C:/Documents and Settings/Xavier/Mis documentos/CFGS/DAI2/C6 Programació Avançada/trim2/Marco de fotos/fotos/";
carpeta = new File(dir);
listaFicheros = carpeta.list();
toolkit = Toolkit.getDefaultToolkit();
imagen2 = toolkit.getImage(dir + listaFicheros[fotoactual]);
}
public void paint(Graphics g) {
size = getSize(); //es de la clase Component, se llama directamente sin poner el objeto
if(imagen1 == null) imagen1 = createImage(1024,1024); //creamos una imagen con un tamaño (permanecerá oculta). Es el tamaño máximo de la imagen cuando crece
gimagen1 = imagen1.getGraphics(); //obtener entorno gráfico de imagen1
gimagen1.setColor(getBackground()); //le ponemos el color del fondo
gimagen1.fillRect(0, 0, size.width, size.height); //le dibujamos un rectangulo desde la esquina con alto y ancho del panel para borrar el contexto grafico de la imagen ficticia
gimagen1.drawImage(imagen2, 0, 0, size.width, size.height, this); //sobre el contexto grafico de la imagen1 colocamos la imagen2 que es la que esta cargada del fichero. Con esta lÃ*nea hacemos q la imagen se ajuste al hacer grande y pequeño.
g.drawImage(imagen1, 0, 0, this); //asi la visualizamos, desde el punto 0,0
}
public void recargaImagenSiguiente() {
if(fotoactual == listaFicheros.length -1) fotoactual = 0;
else fotoactual++;
imagen2 = toolkit.getImage(dir + listaFicheros[fotoactual]);
repaint();
}
public void recargaImagenAnterior() {
if(fotoactual == 0) fotoactual = listaFicheros.length -1;
else fotoactual--;
imagen2 = toolkit.getImage(dir + listaFicheros[fotoactual]);
repaint();
}
}
Espero que me podais echar una mano! gracias!!!