Criando Evento para Imagens

3 respostas
Dyego_

Boa tarde pessoal,

gostaria de saber como faço para criar um evento tal, q quando o usuário clique na minha imagem, gere uma ação de deslocamento da imagem para cima, assim como nos jogos de cartas normais.

pesquisei na internet, mas só encontrei coisas referêntes a botões ¬¬"

segue um resumo do código:

interface drawable
{
	public void draw(Graphics g);
}

class MyPictureInside implements drawable
{
    //private Integer valor, naipe;
    private Jogador a; 

    public MyPictureInside(Jogador a)
    {
        this.a = a;
    }
    
	public void draw(Graphics g)
	{
        //inicialização de variáveis de imagem
        //variável para buffer da imagem do baralho

        BufferedImage image1 = null;		

        BufferedImage image_APaus = null;
        [...]
        BufferedImage image_KPaus = null;
        [...]
        BufferedImage image_QPaus = null;
        [...][...]

        try{			
            image1 = ImageIO.read(new File("Imagens/zbaralho.png"));

        //loop para renderizar a mão do jogador
        Integer x = 40, y = 80;
        for(Integer i=0; i< 15; i++)
        {            
                //3
                if(a.cartas.get(i).get_valor()==3)
                {
                    if(a.cartas.get(i).get_naipe()==2)
                    {
                        System.out.println("Paus");
                        image_3Paus = image1.getSubimage(945, 457, 102, 149);
                        g.drawImage(image_3Paus, x, y, null); //g.drawImage(image1,X,Y, null);
                    }
                }
                [...]
                //separa as cartas
                x+=30;
            
         }
        //endloop das 15 cartas        
           
        /*Fim Mapeamento da Imagem xnaipes.png*/
		}
		catch (IOException e)
		{
            System.out.println(e);
		}
        //FlowLayout layout = new FlowLayout(FlowLayout.CENTER);

	}
}

class MPanel extends JPanel 
{
	drawable obj = null;

	public void setObj(drawable o)
	{
		this.obj = o;
	}

    @Override
	public void paintComponent(Graphics g)
	{
		super.setBackground(Color.BLACK);
		super.paintComponent(g);
		this.obj.draw(g);
	} 

}

public class VisualCartas {

    public VisualCartas(Jogador a, JFrame janela)
    {        
        MPanel f = new MPanel();

        f.setObj(new MyPictureInside(a));

        janela.add(f);
    }
}

3 Respostas

Marky.Vasconcelos

Para criar animações, voce precisa fazer algo bem parecido como em jogos.

Voce pode ver mais no www.pontov.com.br sobre como desenhar e realizar animações no Java.

Dyego_

Blz Marky,

preciso criar um evento click q dispare quando eu clicar na imagem, no mais simples é isso

criar uma coisa desse tipo com C# usando vs não demoram muitos segundos xD

acredito q não deve ser muito complicado no java tbm

Marky.Vasconcelos

Na parte do evento basta apenas adicionar o Listener ao JPanel que exibe a imagem.

Fazer a animação de translação já é mais complicado.

Criado 12 de junho de 2011
Ultima resposta 13 de jun. de 2011
Respostas 3
Participantes 2