Help nessa logica, guardar refencia do ultimo clique

bom pessoal, tenho 8 botoes como figuras, sao 4 pares. Quero guardar a variavel do botao clicado em uma variavel de referencia ao botao_antigo, para quando executar o metodo novamente eu comparar se botao_clicado eh diferente de botao_antigo, se true, setar uma imagem de volta ao botao_antigo.

Tentei assim:

    private JButton btantigo, button1, resete, button2, button3, button4, button5, button6, button7, button8;

void icone(JButton clicado){
    String num = clicado.getName();
     iconex = num+".gif";
    if(num.equals(ponteiro))
    {
        titulo.setText("Parabéns, figura: " + ponteiro);
        clicado.setIcon(new ImageIcon(iconex));
    }else{
    ponteiro = num;
    titulo.setText(ponteiro); //label
clicado.setIcon(new ImageIcon(iconex)); //aqui exibe a img do clicado

btantigo.setIcon(new ImageIcon("iconjogo.gif")); //aqui deveria voltar, abaixo que irei setar o novo btantigo

btantigo = clicado;
    }
 
}

///////////botoes(alguns)
void botoes(){
button1 = new JButton();
       c.fill = GridBagConstraints.NONE;
       c.gridwidth = 1;
       c.gridx=0;
       c.gridy=1;
       button1.setName(randomico());
       button1.setIcon(icone1);
       button1.setContentAreaFilled(false);
       button1.setBorderPainted(false);
              cons.add(button1, c);
       
       //      
       button2 = new JButton(); 
       
       c.gridx=1;
       c.gridy=1;
       
       button2.setName(randomico());
       button2.setIcon(icone1);
       button2.setContentAreaFilled(false);
       button2.setBorderPainted(false);
 cons.add(button2, c);
       
       //
 button3 = new JButton();

 c.gridx=2;
 c.gridy=1;
  button3.setName(randomico());
 button3.setIcon(icone1);
 button3.setContentAreaFilled(false);
 button3.setBorderPainted(false);
cons.add(button3, c);
              //
button4 = new JButton();
c.fill = GridBagConstraints.NONE;
c.gridx=3;
c.gridy=1;
 button4.setName(randomico());
button4.setIcon(icone1);
button4.setContentAreaFilled(false);
button4.setBorderPainted(false);
cons.add(button4, c);
       //
}

button4.addActionListener(this); 
    button3.addActionListener(this); 
       button2.addActionListener(this); 
       button1.addActionListener(this); 

   public void actionPerformed(ActionEvent e){
              icone((JButton) e.getSource());    
          }

O principal creio que seja no icone();