Movimentar e redimensionar imagens

3 respostas
bruno.fantin

Galera.

Vou precisar criar uma aplicação swing onde vai ter um quadrado com algumas imagens dentro ( imagens jpg ).

Porém o usuario teria que poder movimentar elas com o mouse ( clicando e segundo o botão e movimento o mouse ) ou redimencionar (clicando e segundo junto com a tecla shift).

Alguém poderia me da uma dica por onde começar?

Valeu.

3 Respostas

C

você tem que usar mouseListener para a movimentação dos objetos

Lindberg

achei isso ai, durante varias gogladas, da uma olhada

import java.awt.event.<em>;

import java.awt.</em>;

import javax.swing.*;
public class Zoom extends JFrame

{

mapPanel  map    = new mapPanel(imagens/picini.jpg);

public Zoom()
{

addWindowListener(new WindowAdapter() 
{	public void windowClosing(WindowEvent ev) 
	{	dispose();
		System.exit(0);}});
setBounds(10,10,800,700);
getContentPane().setLayout(null);
getContentPane().add(map);	
setVisible(true);

}

public class mapPanel extends JPanel

{

Image map;

double mw,mh;

double zw,zh;

double mx,my;

double zf=1,tx=0,ty=0;
public mapPanel(String name)

{

setBounds(50,50,650,600);   //200, 150

setBackground(Color.white);

map = getToolkit().createImage(name);

MediaTracker tracker = new MediaTracker(this);

tracker.addImage(map,0);

try   {tracker.waitForID(0);}

catch (InterruptedException e){}

mw  = map.getWidth(null);

mh  = map.getHeight(null);

zw  = 650;  //200

zh  = 600;  //150

mx  = mw/2;

my  = mh/2;
addMouseListener(new MouseAdapter()
{
	public void mousePressed(MouseEvent m)
	{
		zf = zf + 0.025;
		double sw = zw / mw;
		double sh = zh / mh;
		double sx = m.getX() / sw;
		double sy = m.getY() / sh;
		tx = mw/2 - (sx-tx);
		ty = mh/2 - (sy-ty);
		repaint();
	}
});
}

public void paintComponent(Graphics g)

{

super.paintComponent(g);

Graphics2D g2 = (Graphics2D)g;

g2.scale(zf<em>zw/mw,zf</em>zh/mh);

g2.translate(tx/zf,ty/zf);

g2.drawImage(map,0,0,null);

g2.dispose();

}	

}
public static void main(String[] args )

{

new Zoom();

}

}

bruno.fantin

Valeu.

Vou usar para começar a fazer o meu.

Criado 2 de junho de 2010
Ultima resposta 4 de jun. de 2010
Respostas 3
Participantes 3