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]