Dúvida sobre ação de JButton

Estou tentando fazer um botão que faça uma variável andar sobre a matriz (por exemplo: está na posição 1,1 aperta baixo e vai para 0,1, ou [i-1][j])
Ou seja, eu queria que a ação do botão voltasse pra outro objeto pra que eu pudesse modificar a variável "posicao"
mas todos os exemplos que achei na internet o botão só responde pra ele mesmo(tipo uma calculadora que soma números e já mostra)…

Obs:Aproveitando o tópico se alguém souber como fazer pra deixar o usuário clicando(sem ter que abrir uma janela por vez) até “posicao” chegar num número qualquer que eu escolher agradeço também.

O código está assim:

[code]import javax.swing.;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.
;

public class Andador extends JFrame implements ActionListener {
JLabel espaço1, espaço2, espaço3, espaço4;
JButton botaoCima, botaoEsquerda, botaoBaixo, botaoDireita;

public Andador() {
	setTitle("andador");
	setSize(250, 130);
	Container container = getContentPane();
	GridLayout grade = new GridLayout(3, 3);
	container.setLayout(grade);
	espaço1 = new JLabel("");
	espaço2 = new JLabel("");
	espaço3 = new JLabel("andador");
	espaço4 = new JLabel(" v.1.2");
	botaoCima = new JButton("^");
	botaoEsquerda = new JButton("<");
	botaoBaixo = new JButton("v");
	botaoDireita = new JButton(">");
	container.add(espaço1);
	container.add(botaoCima);
	container.add(espaço2);
	container.add(botaoEsquerda);
	container.add(botaoBaixo);
	container.add(botaoDireita);
	container.add(espaço3);
	container.add(espaço4);
	botaoCima.addActionListener(this);
	botaoEsquerda.addActionListener(this);
	botaoBaixo.addActionListener(this);
	botaoDireita.addActionListener(this);
}

public void actionPerformed (ActionEvent Evento) {

	if (Evento.getSource() == botaoCima) {

	}
	if (Evento.getSource() == botaoEsquerda) {

	}
	if (Evento.getSource() == botaoBaixo) {

	}
	if (Evento.getSource() == botaoDireita) {
		
	}
}

}[/code]

Brow você pode começar criando uma classe que armazena o x,y

class Objeto{
   private int x;
   private int y;


   //getters and setters
}

e no seu codigo fica

import javax.swing.*;   
import java.awt.Container;   
import java.awt.GridLayout;   
import java.awt.event.*;   
  
public class Andador extends JFrame implements ActionListener {   
    JLabel espaço1, espaço2, espaço3, espaço4;   
    JButton botaoCima, botaoEsquerda, botaoBaixo, botaoDireita;   
    Objeto obj;

    public Andador() {   
        setTitle("andador");   
        setSize(250, 130);   
        Container container = getContentPane();   
        GridLayout grade = new GridLayout(3, 3);   
        container.setLayout(grade);  
        obj = new Objeto();
        obj.setX(0);
        obj.setY(0);
        espaço1 = new JLabel("");   
        espaço2 = new JLabel("");   
        espaço3 = new JLabel("andador");   
        espaço4 = new JLabel(" v.1.2");   
        botaoCima = new JButton("^");   
        botaoEsquerda = new JButton("<");   
        botaoBaixo = new JButton("v");   
        botaoDireita = new JButton(">");   
        container.add(espaço1);   
        container.add(botaoCima);   
        container.add(espaço2);   
        container.add(botaoEsquerda);   
        container.add(botaoBaixo);   
        container.add(botaoDireita);   
        container.add(espaço3);   
        container.add(espaço4);   
        botaoCima.addActionListener(this);   
        botaoEsquerda.addActionListener(this);   
        botaoBaixo.addActionListener(this);   
        botaoDireita.addActionListener(this);   
    }   
  
    public void actionPerformed (ActionEvent Evento) {   
  
        if (Evento.getSource() == botaoCima) {   
              obj.setY(obj.getY() + 1 );
        }   
        if (Evento.getSource() == botaoEsquerda) {   
            obj.setX(obj.getX() - 1 );
        }   
        if (Evento.getSource() == botaoBaixo) {   
           obj.setY(obj.getY() - 1 );

        }   
        if (Evento.getSource() == botaoDireita) {   
               obj.setX(obj.getX() + 1 );
        }   
    }   
}  

ai é só vc brincar ae ^^

Abraço.

Movido para o fórum de interface gráfica. Por favor, leia atentamente a descrição dos fóruns antes de postar.

kritiuns , valeu pela ajuda, usei um set pra mudar o valor da variável, ficou assim:

[code]public void actionPerformed (ActionEvent Evento) {

	if (Evento.getSource() == botaoCima) {
            Teste1.setPosicaoLinha(1);
		
	}
	if (Evento.getSource() == botaoEsquerda) {
         Teste1.setPosicaoColuna(-1);  
		
	}
	if (Evento.getSource() == botaoBaixo) {
        Teste1.setPosicaoLinha(-1);
	}
	if (Evento.getSource() == botaoDireita) {
        Teste1.setPosicaoColuna(1);[/code]

Acontece o seguinte estou rodando um teste JUNIT que da true se a posição for tal.Ele começa na posição errada e o botão serviria pra ir mudando a posição, mas quando eu rodo o teste ele abre o botão e não faz nada independente do que eu clique.
O código da classe Teste1 ta assim:

[code]public boolean teste(int p) {
Andador janela = new Andador();
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
while(localizacaoPessoa != matriz[0][1] && localizacaoPessoa != matriz[2][2]){
linhaAtual = linhaAtual + movimentoLinha;
colunaAtual = colunaAtual + movimentoColuna;
}
if (localizacaoPessoa == matriz[0][1]) {
fimTeste1 = true;
}
if (localizacaoPessoa == matriz[2][2])
fimTeste1 = true;
return fimTeste1;
}
public static void setPosicaoLinha(int direcao){
movimentoLinha = direcao;

}
public static void setPosicaoColuna(int direcao){
	movimentoColuna = direcao;
	
}

}[/code]