Alterar o ícone de um botão com um clique

2 respostas
R

Boa tarde galera, bom o título é bem descritivo, então serei breve: estou desenvolvendo um jogo da memória em Java, e o que eu preciso é que quando o usuário clique em uma carta (um JButton) ela mostre um desenho, ou seja, ela fica mostrando uma imagem, quando se clica, ela mostra outra, ta ai o código pra dar uma mão:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class jogoMemoria extends JFrame
	implements ActionListener {
	
	private int estado = 0;
	private JButton botoes[];
	private GridLayout grid1;
	private Container container;
 

	public jogoMemoria()
	{
	super ("Jogo da Memória");
	grid1 = new GridLayout(6,6,1,1);
	 
	//obtém painel de ocnteúdo e configura o layout
    container = getContentPane();
    container.setLayout(grid1);
 	Icon imagem2 = new ImageIcon ("imagem2.gif");   
     botoes = new JButton[36];
    for (int count = 0; count < 36;count++)
    {
    	botoes[count] = new JButton("",imagem2);
    	botoes[count].addActionListener(this);
    	container.add(botoes[count]);
    }
    
    
    setSize(500,500);
    setVisible(true);
    }
    public void actionPerformed(ActionEvent event)
    {//O QUE QUE EU FAÇO AKI????
     //algo parecido com isso:
   	//  botoes[].setPressedIcon(new ImageIcon ("imagem1.gif"));
    }
    public static void main (String args[])
    {
    	jogoMemoria application = new jogoMemoria();
    	application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}// Fim da classe jogoMemoria

2 Respostas

Pablo_Eteg

Eu recomendaria uma outra classe apenas para tratar os eventos mesmo que anônima,
pois bem você pode usar o método getSource() de ActionEvent para obter o objeto
responsável pelo evento e aih montar a sua lógica

Exemplo

public void actionPerformed(ActionEvent event)  
     {
           Jbutton button = (JButton)event.getSource();
           button.setIcon(new ImageIcon("imagem.gif")) ;   
  }
R

Vlw cara, funcionou como uma luva!!!
:-o

Abração cara

Criado 25 de maio de 2008
Ultima resposta 25 de mai. de 2008
Respostas 2
Participantes 2