Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2009, 04:19
xvicient
 
Fecha de Ingreso: enero-2009
Mensajes: 21
Antigüedad: 15 años, 4 meses
Puntos: 0
zoom en imagenes con java

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!!!