Como comparar dois JButtons

0 respostas
mrsilvestrini

Olá pessoal.
Estou desenvolvendo uma Jogo da Memória.
Sou iniciante em java.

Meu problema:
Estou encontrando dificuldades para comparar dois JButtons,
trocar suas imagens e desabilita-los,bem como capturar os eventos
de maneira correta.

Segue código que estou desenvolvendo.

//classe Imagens.

//  @ Project :Game da Memoria
//  @ File Name : Classes
//  @ Date : 20/07/2011
//  @ Author : Marcos Silvestrini

import javax.swing.ImageIcon;

public class Imagens extends ImageIcon{	
	private static String dir="imagens/";;
	private static String nome="padrao";
	private static String ext=".jpg";	
	private static String imagem=dir+nome+ext;
	
	public  Imagens(){
		super(imagem);				
	}
	public static ImageIcon getImagem(){
		nome="padrao";
		imagem=dir+nome+ext;		
		return new ImageIcon(imagem);			
	}

	public static ImageIcon getImagem(int indice){
		nome="img"+indice;
		imagem=dir+nome+ext;
		return new ImageIcon(imagem);		
	}
	public static String getDir(){
		return dir;
	}
	public static String getExt(){
		return ext;
	}
	public static String getNome(){
		return nome;
	}
	
}

//classe Botao
************aqui começam os problemas**********

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

public class Botao extends JButton implements ActionListener{	
	private int id;
	private int contClick;
		
	public Botao(int id){
		super();			
		this.id=id;
		contClick=0;		
		setIcon(Imagens.getImagem());
		addActionListener(this);						
	}
	public Botao getBotao(){
		return this;
	}	
	public int getId(){
		return id;
	}
	public void setId(int id){
		this.id=id;
	}	
	public void setImagem(){
		setIcon(Imagens.getImagem());
		contClick=0;
	}
	public int getContClick(){
		return contClick;
	}
	public void setContClick(){
		contClick=0;
	}
	public void actionPerformed(ActionEvent e){				
		if(contClick>0){
			JOptionPane.showMessageDialog(null,"Erro.Voce clicou no mesmo Botao!!!","Erro de Jogada",JOptionPane.INFORMATION_MESSAGE);
			setIcon(Imagens.getImagem());
			contClick=0;
		}
		else{
			setIcon(Imagens.getImagem(id));
			contClick++;							
		}		
	}	
}

//classe PainelBotao

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

public class PainelBotao extends JPanel implements ActionListener{
	private Botao b1,b2,b3,b4;	
	private int click;
		
	public PainelBotao(){
		super(new GridLayout(0,2,10,10));
		
		//aqui sera um vetor,porem ainda estou testando
		b1=new Botao(1);
		b2=new Botao(2);
		b3=new Botao(3);
		b4=new Botao(2);
		click=0;	
					
		//testando id	
		System.out.println("Id do Botao 1: "+b1.getId());
		System.out.println("Id do Botao 2: "+b2.getId());
		System.out.println("Id do Botao 3: "+b3.getId());
		System.out.println("Id do Botao 4: "+b4.getId());	
		
		//aqui sera um vetor,porem ainda estou testando			
		add(b1);
		add(b2);
		add(b3);
		add(b4);		
		
		//aqui sera um vetor,porem ainda estou testando	
		b1.addActionListener(this);
		b2.addActionListener(this);
		b3.addActionListener(this);
		b4.addActionListener(this);				
				
	}
	public void actionPerformed(ActionEvent e){
		//aqui codigo para verificar se os botoes sao iguais
		//e desabilitar se for igual ou nao
	}	
}

//classe JanelaJogo

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

public class JanelaJogo extends JFrame{
	private int altura,largura;
	private boolean visivel;
	private PainelBotao p;
	
	public JanelaJogo(){
		super("Jogo da Memoria");
		p=new PainelBotao();
		add(p);	
		confJanela(600,600,true);	
				
	}	
	public void confJanela(int a,int l,boolean v){
		altura=a;
		largura=l;
		visivel=v;		
		setSize(largura,altura);
		setVisible(v);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

Espero que tenham entendido minha dificuldade.
Valew pessoal.

Meu blog,é simples mais ta valendo......
[url]www.javinha.wordpress.com[/url]

Criado 29 de julho de 2011
Respostas 0
Participantes 1