3
My goal is to click the button Andar
and then select on the board which direction the character will be moved to, as shown in the image:
My button Andar
has a ActionListener
and is treated as follows:
public void actionPerformed(ActionEvent e) {
Object escolha = e.getSource();
if(escolha==andar)
moverHumano(escolha);
}
But the guy "Object escolha
" seems to detect no action within the class "moverHumano
", even after adding the ActionListener
positions on the character’s side.
This if, for example, is never understood to be true:
if(escolha == this.tabela[POSIÇÃO X][POSIÇÃO Y])
What I want to do is possible that way?
Below, the code of the MAIN class:
package teste;
public class TESTE {
public static void main(String[] args) {
Tabuleiro cenario = new Tabuleiro();
cenario.criarTela();
}
}
BOARD CLASS:
package teste;
public class Tabuleiro extends JFrame implements ActionListener{
private JButton tabela[][],andar,cura,sair,debug,percepcao,vida;
private GridLayout layoutTabuleiro;
Humano jogador1;
public Tabuleiro(){
super("Zumbicídio");
setSize(800,600);
setResizable(false);
layoutTabuleiro = new GridLayout(14,14);
setSize(800,600);
jogador1 = new Humano();
setVisible(true);
}
public void criarTela(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//ADICIONANDO ELEMENTOS
this.visualizarTabuleiro();
//MOSTRANDO A JANELA
this.setVisible(true);
}
//No método abaixo eu adiciono tudo no tabuleiro, por isso ficou grande, mas boa parte pode ser ignorada. Acho que o que importa mesmo é ter adicionado os ActionListener, o que fiz logo no início. Adicionei printf's de teste nos locais que não funcionam no meu código original (isso tá lá embaixo, perto do método do ActionListener)
public void visualizarTabuleiro(){
final JPanel telaTabuleiro = new JPanel();
int i, j;
telaTabuleiro.setLayout(layoutTabuleiro);
telaTabuleiro.setPreferredSize(new Dimension(600,550));
// ADICIONANDO ACTION LISTENER
tabela = new JButton[10][10];
for(i=0;i<10;i++){
for(j=0;j<10;j++){
this.tabela[i][j] = new JButton(new ImageIcon("res/images/desconhecido.png/"));
this.tabela[i][j].addActionListener(this);
}
}
//ADICIONANDO ELEMENTOS
//1 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//2 LINHA (PRIMEIRA DO TABULEIRO) **************
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[0][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//3 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[1][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//4 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[2][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//5 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[3][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//6 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[4][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//7 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[5][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//8 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[6][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//9 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[7][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//10 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[8][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//11 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
for(j=0;j<10;j++){
telaTabuleiro.add(tabela[9][j]);
}
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//12 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//13 LINHA
telaTabuleiro.add(new Label(" "));
vida = new JButton("hp");
telaTabuleiro.add(vida);
percepcao = new JButton("percep");
telaTabuleiro.add(percepcao);
telaTabuleiro.add(new Label(" "));
andar = new JButton("andar");
andar.addActionListener(this);
telaTabuleiro.add(andar);
telaTabuleiro.add(new Label(" "));
cura = new JButton("cura");
cura.addActionListener(this);
telaTabuleiro.add(cura);
telaTabuleiro.add(new Label(" "));
debug = new JButton("debug");
debug.addActionListener(this);
telaTabuleiro.add(debug);
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
sair = new JButton("sair");
sair.addActionListener(this);
telaTabuleiro.add(sair);
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//14 LINHA
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" Vida "));
telaTabuleiro.add(new Label(" Percep. "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" Andar"));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" Cura"));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" Debug"));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" Sair"));
telaTabuleiro.add(new Label(" "));
telaTabuleiro.add(new Label(" "));
//ADICIONANDO NO CONTENTPANE
this.getContentPane().add(telaTabuleiro, BorderLayout.NORTH);
}
public void moverHumano(Object escolha){
if(escolha==tabela[0][0]){
System.out.println("Selecionou a primeira posição!"); // O QUE DESEJO TESTAR E NÃO ESTÁ FUNCIONANDO
}
}
@Override
public void actionPerformed(ActionEvent ae) {
Object escolha = ae.getSource();
if(escolha==andar){
System.out.println("Escolheu andar");
moverHumano(escolha);
}
}
HUMAN CLASS:
package teste;
public class Humano {
private int saude, percep;
Humano(){
this.saude = 5;
this.percep = 3;
}
public int getSaude(){
return this.saude;
}
public int getPercepcao(){
return this.percep;
}
}