getSource() e MouseClicked()

4 respostas
L

Ola pessoal,

estou tendo um problema com essas funcoes acima.

Eu fiz o seguinte:
ImageIcon carta0=new ImageIcon(“images/000.gif”);

utilizei o carta0.paintIcon() para colocar a imagem na tela.

gostaria que quando clicasse na figura, aparecesse uma mensagem na tela. Tentei da seguinte forma:

public void mouseClicked(MouseEvent e){

String s=TESTE;

if(e.getSource()==carta0){

s=2 de OUROS;

JOptionPane.showMessageDialog(null,s);

}

}

mas nao funciona. Nao entra no if. Alguem sabe me dizer o que acontece ou tem uma solucao melhor?

Obrigado,
Leonardo

4 Respostas

E

Acho que o ImageIcon não ouve eventos. Você tem que colocá-lo em algum botão (ou outro componente) e adicionar um ouvinte a esse componente, de forma que os eventos do mouse possam ser tratados.

L

Mas eu estou querendo colocar varias cartas uma sobreposta a outra (igual o jogo de copas que vem no windows).

Como poderia fazer sem ser com o ImageIcon??

Valeu!
Leo

E

Você pode tentar desenhar todos em um JPanel só…quando você sobrescreve o método paintComponent, você pode desenhar o que quiser nele, e é o que vai aparecer na tela. Dessa forma, você poderia desenhar as cartas assim:

public void paintComponent(Graphics g) {
  super.paintComponent();

  for (int i=0 ; i<cartas.length ; i++) {
    g.drawImage(...); // desenha a carta i, deslocada à direita da anterior
  }
}

É lógico que o código acima está simplificado e eu não sei como são guardadas suas cartas, mas se vc brincar com os tutoriais da Sun e fuçar um pouquinho vc resolve :wink:

L

Ok!! MUITO OBRIGADO!!!

Criado 19 de maio de 2004
Ultima resposta 21 de mai. de 2004
Respostas 4
Participantes 2