Quero colocar o btnVoltar , esse botao para voltar , isso é uma parte do source. Eu quero que quando clicar em "Voltar" volte a pergunta anterior

package tabuada;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Random;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.Font;
import java.awt.Label;

public class JogoTabuada {

private JFrame frmOperaesMatemticas;
private JLabel lblResposta;
private JLabel lblN2;
private JLabel lblN1;
private JLabel lblOperacao;
private JTextField tfResposta;
private JButton btnTestar;

int n1,n2,operacao,oculto;
String operacao2, respostaCorreta;
float  resposta ;
private JLabel lblAcertos_1;
private JLabel lblErros_1;
private JButton btnVoltar;


/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				JogoTabuada window = new JogoTabuada();
				window.frmOperaesMatemticas.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the application.
 */
public JogoTabuada() {
	initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {
	frmOperaesMatemticas = new JFrame();
	frmOperaesMatemticas.setBackground(Color.BLACK);
	frmOperaesMatemticas.setTitle("Opera\u00E7\u00F5es Matem\u00E1ticas");
	frmOperaesMatemticas.setFont(new Font("Dialog", Font.PLAIN, 47));
	frmOperaesMatemticas.getContentPane().setForeground(Color.WHITE);
	frmOperaesMatemticas.getContentPane().setBackground(new Color(0, 250, 154));
	frmOperaesMatemticas.setBounds(100, 100, 1612, 862);
	frmOperaesMatemticas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frmOperaesMatemticas.getContentPane().setLayout(null);
	frmOperaesMatemticas.setResizable(false);
	frmOperaesMatemticas.setLocationRelativeTo(null);
	
	lblN1 = new JLabel(" 2");
	lblN1.setFont(new Font("Tahoma", Font.PLAIN, 99));
	lblN1.setBounds(296, 257, 243, 120);
	frmOperaesMatemticas.getContentPane().add(lblN1);
	
	lblOperacao = new JLabel(" /");
	lblOperacao.setFont(new Font("Tahoma", Font.PLAIN, 99));
	lblOperacao.setBounds(505, 271, 94, 92);
	frmOperaesMatemticas.getContentPane().add(lblOperacao);
	
	lblN2 = new JLabel("5");
	lblN2.setFont(new Font("Tahoma", Font.PLAIN, 99));
	lblN2.setBounds(660, 250, 230, 134);
	frmOperaesMatemticas.getContentPane().add(lblN2);
	
	JLabel label = new JLabel("=");
	label.setFont(new Font("Tahoma", Font.PLAIN, 99));
	label.setBounds(879, 254, 72, 127);
	frmOperaesMatemticas.getContentPane().add(label);
	
	lblResposta = new JLabel(" 4");
	lblResposta.setFont(new Font("Tahoma", Font.PLAIN, 99));
	lblResposta.setBounds(963, 250, 399, 134);
	frmOperaesMatemticas.getContentPane().add(lblResposta);
	
	tfResposta = new JTextField();
	tfResposta.setFont(new Font("Tahoma", Font.PLAIN, 28));
	tfResposta.setBackground(Color.WHITE);
	tfResposta.addKeyListener(new KeyAdapter() {
		@Override
		public void keyPressed(KeyEvent arg0) {
			if(arg0.getKeyCode()== KeyEvent.VK_ENTER) {
				if(!tfResposta.getText().isEmpty()) {
					btnTestar.doClick();
				}
			}
		}
		@Override
		public void keyTyped(KeyEvent arg0) {
			if(tfResposta.getText().length()>6) {
				arg0.consume();
			}
		}
	});
	tfResposta.setBounds(730, 564, 344, 59);
	frmOperaesMatemticas.getContentPane().add(tfResposta);
	tfResposta.setColumns(10);
	
	JLabel lblAcertos = new JLabel("0");
	lblAcertos.setFont(new Font("Tahoma", Font.PLAIN, 32));
	lblAcertos.setToolTipText("acertos");
	lblAcertos.setBounds(157, 511, 60, 39);
	frmOperaesMatemticas.getContentPane().add(lblAcertos);
	
	JLabel lblErros = new JLabel("0");
	lblErros.setFont(new Font("Tahoma", Font.PLAIN, 35));
	lblErros.setBounds(157, 602, 46, 39);
	frmOperaesMatemticas.getContentPane().add(lblErros);
	
	btnTestar = new JButton("Testar");
	btnTestar.setForeground(Color.WHITE);
	btnTestar.setBackground(new Color(0, 102, 0));
	btnTestar.setFont(new Font("Tahoma", Font.PLAIN, 30));
	btnTestar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			if(respostaCorreta.equals(tfResposta.getText())) {
				JOptionPane.showMessageDialog(null, "ACERTOU");
				lblAcertos.setText(String.valueOf(Integer.parseInt(lblAcertos.getText())+1));
				gerarValores();
			}else {
				JOptionPane.showMessageDialog(null, "ERROU \n Resposta = "+respostaCorreta);
				lblErros.setText(String.valueOf(Integer.parseInt(lblErros.getText())+1));
				gerarValores();
			}
		}
	});
	btnTestar.setBounds(1086, 562, 165, 61);
	frmOperaesMatemticas.getContentPane().add(btnTestar);
	
	
	
	lblErros_1 = new JLabel("Erros");
	lblErros_1.setToolTipText("acertos");
	lblErros_1.setFont(new Font("Tahoma", Font.PLAIN, 32));
	lblErros_1.setBounds(157, 561, 119, 39);
	frmOperaesMatemticas.getContentPane().add(lblErros_1);
	
	lblAcertos_1 = new JLabel("Acertos");
	lblAcertos_1.setToolTipText("acertos");
	lblAcertos_1.setFont(new Font("Segoe UI", Font.PLAIN, 32));
	lblAcertos_1.setBounds(157, 473, 119, 39);
	frmOperaesMatemticas.getContentPane().add(lblAcertos_1);
	
	Label label_1 = new Label("Favor considere que 0 \u00E9 0,0.");
	label_1.setFont(new Font("Dialog", Font.PLAIN, 28));
	label_1.setForeground(new Color(0, 0, 0));
	label_1.setBounds(37, 672, 367, 62);
	frmOperaesMatemticas.getContentPane().add(label_1);
	
	btnVoltar = new JButton("Voltar");
	btnVoltar.setBackground(new Color(0, 102, 0));
	btnVoltar.setForeground(Color.WHITE);
	btnVoltar.setFont(new Font("Tahoma", Font.PLAIN, 30));
	btnVoltar.setBounds(1086, 672, 165, 59);
	frmOperaesMatemticas.getContentPane().add(btnVoltar);
	
	
	
	
	
	gerarValores();
}

public void gerarValores() {
	tfResposta.setText(null);
	Random r = new Random(); //para gerar valores aleatórios
	n1 = r.nextInt(2)+1; //valores de 1 até 10
	n2 = r.nextInt(2)+1; //valores de 1 até 10
	operacao = r.nextInt(4)+1 ; //valores de 1 até 3
	//operacao =1 + =2 - =3 * =4 /
	oculto = r.nextInt(1)+4;
	
	if((n1==2 && n2==2) && (operacao==1 || operacao==3)) {
		n1=n1+1;
	
	}
	

	
		
		 
	{
		
					
	
	if(n1<n2) {
		int troca = n1;
		n1 = n2;
		n2 = troca;
	}
	
	if((n1==4 && n2==2) && (operacao==2 || operacao==4)) {
		n1=n1+1;
	}
	if(operacao == 1) {
		lblOperacao.setText("+");
		operacao2 = "+";
		resposta = n1+n2;
	}
	if(operacao == 2) {
		lblOperacao.setText("-");
		operacao2 = "-";
		resposta = n1-n2;
		
			
		}
	}
	if(operacao == 3) {
		lblOperacao.setText("*");
		operacao2 = "*";
		if(n2 == 1) {
			n2 = n2+1;
		}
		resposta = n1*n2;	
		System.out.println(resposta);

	}
	if(operacao == 4) {
		lblOperacao.setText("/");
		operacao2 = "/";
		if(n2 == 1) {
			n2 = n2+1;
		}
	
	
	
		 resposta = (float)n1/(float)n2;
		System.out.println(resposta);
		
	}
	
	if(oculto==1) {
		lblN1.setText("?");
		lblN2.setText(String.valueOf(n2));
		lblResposta.setText(String.valueOf(resposta).replace('.', ','));
		respostaCorreta = String.valueOf(n1);
	}
	if(oculto==2) {
		lblN1.setText(String.valueOf(n1));
		lblOperacao.setText("?");
		lblN2.setText(String.valueOf(n2));
		lblResposta.setText(String.valueOf(resposta).replace('.', ','));
		respostaCorreta = operacao2;
	}
	if(oculto==3) {
		lblN1.setText(String.valueOf(n1));
		lblN2.setText("?");
		lblResposta.setText(String.valueOf(resposta).replace('.', ','));
		respostaCorreta = String.valueOf(n2);
		
	}
	if(oculto==4) {
		lblN1.setText(String.valueOf(n1));
		lblN2.setText(String.valueOf(n2));
		lblResposta.setText("?");
		
		int rr = (int)resposta;
		if(resposta%rr==0) {
			respostaCorreta = String.valueOf(rr);
		}else {
			respostaCorreta = String.valueOf(resposta).replace('.', ',');
		}			
	}
	System.out.println(n1);
	System.out.println(operacao);
	System.out.println(n2);
	System.out.println(resposta);
    System.out.println(respostaCorreta);


	tfResposta.requestFocus();
}

}