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