Ajuda com Swing

Boa tardeeeee :smile:, a ACAO do botao SALVAR esta salvando um cadastro. Se eu aperto novamente, ele não grava um 2º cadastro. Ele salva por cima. Gostaria de Gravar (N) cadastros e que aparecesse embaixo do cadastro de numero 1. Como eu posso fazer ?:face_with_monocle:
Muito obrigado :pray: .

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CadastroItens extends JFrame implements ActionListener {

	JLabel lblcod, lblprod, lblquant, lblpcompra, lblpvenda, lblpesq, lblinicio, lblmar;
	JTextField txcod, txprod, txquant, txpcompra, txpvenda, txpesq;
	JComboBox cmbmarca, cmbVenda;
	JButton btnovo, btsal, bted, btexc, btlimpa, btexit;
	ButtonGroup venda1, venda2;
	JRadioButton radiovend1;

	public CadastroItens() {
		setLayout(null);
		
		lblinicio = new JLabel("      Cadastro Produtos");
		lblinicio.setForeground(Color.DARK_GRAY)
		lblinicio.setBounds(300, 0, 500, 50);
		lblinicio.setFont(new Font("Serif", Font.BOLD, 22));
		add(lblinicio);

		lblcod = new JLabel("Cód produtos: ");
		lblcod.setForeground(Color.DARK_GRAY);
		lblcod.setBounds(15, 70, 140, 50);
		lblcod.setFont(new Font("Serif", Font.BOLD, 17));
		add(lblcod); 

		txcod = new JTextField("");
		txcod.setBounds(125, 85, 60, 25);
		txcod.setBackground(Color.lightGray);
		add(txcod);

		lblprod = new JLabel("Produtos: ");
		lblprod.setForeground(Color.DARK_GRAY);
		lblprod.setBounds(220, 70, 100, 50);
		lblprod.setFont(new Font("Serif", Font.BOLD, 17));
		add(lblprod);

		txprod = new JTextField("");
		txprod.setBounds(295, 85, 120, 25);
		// txprod.setForeground(Color.orange);
		txprod.setBackground(Color.lightGray);
		add(txprod);

		lblquant = new JLabel("Quantidade: ");
		lblquant.setForeground(Color.DARK_GRAY);// cor
		lblquant.setBounds(500, 70, 100, 50);// posicao
		lblquant.setFont(new Font("Serif", Font.BOLD, 17));
		add(lblquant);

		txquant = new JTextField("");
		txquant.setBounds(595, 85, 120, 25);
		txquant.setBackground(Color.lightGray);
		add(txquant);

		lblpcompra = new JLabel("Preço de Compra: ");
		lblpcompra.setForeground(Color.DARK_GRAY);
		lblpcompra.setBounds(15, 120, 140, 50);
		lblpcompra.setFont(new Font("Serif", Font.BOLD, 17));
		add(lblpcompra);

		txpcompra = new JTextField();
		txpcompra.setBounds(155, 130, 50, 25);
		txpcompra.setBackground(Color.lightGray);
		add(txpcompra);

		lblpvenda = new JLabel("Preço de Venda: ");
		lblpvenda.setForeground(Color.DARK_GRAY);
		lblpvenda.setBounds(220, 120, 140, 50);// posicao
		lblpvenda.setFont(new Font("Serif", Font.BOLD, 17));
		add(lblpvenda);

		txpvenda = new JTextField("");
		txpvenda.setBounds(345, 130, 50, 25);
		txpvenda.setBackground(Color.lightGray);
		add(txpvenda);

		btnovo = new JButton("Novo Item");
		btnovo.setBounds(15, 175, 100, 40);
		btnovo.setMnemonic('O');
		btnovo.setToolTipText("cadastra nova venda");
		btnovo.setForeground(Color.DARK_GRAY);
		btnovo.addActionListener((ActionListener) this);
		add(btnovo);

		btsal = new JButton("Salvar");
		btsal.setBounds(120, 175, 100, 40);
		btsal.setMnemonic('O');
		btsal.setToolTipText("salva p/ proximo cadastro");
		btsal.setForeground(Color.DARK_GRAY);
		btsal.addActionListener((ActionListener) this);
		add(btsal);

		bted = new JButton("Editar");
		bted.setBounds(225, 175, 100, 40);
		bted.setMnemonic('O');
		bted.setToolTipText("edita dados");
		bted.setForeground(Color.DARK_GRAY);
		bted.addActionListener((ActionListener) this);
		add(bted);

		btexc = new JButton("Excluir");
		btexc.setBounds(330, 175, 100, 40);
		btexc.setMnemonic('O');
		btexc.setToolTipText("exclui cadastro selecionado");
		btexc.setForeground(Color.DARK_GRAY);
		btexc.addActionListener((ActionListener) this);
		add(btexc);

		btlimpa = new JButton("Limpar Dados");
		btlimpa.setBounds(435, 175, 130, 40);
		btlimpa.setMnemonic('O');
		btlimpa.setToolTipText("limpa campos");
		btlimpa.setForeground(Color.DARK_GRAY);
		btlimpa.addActionListener((ActionListener) this);
		add(btlimpa);

		btexit = new JButton("Sair");
		btexit.setBounds(570, 175, 100, 40);
		btexit.setMnemonic('E');
		btexit.setToolTipText("fecha programa");
		btexit.setForeground(Color.DARK_GRAY);
		btexit.addActionListener((ActionListener) this);
		add(btexit);

		

		lblmar = new JLabel("Marca: ");
		lblmar.setForeground(Color.DARK_GRAY);// cor
		lblmar.setBounds(500, 120, 100, 50);// posicao
		lblmar.setFont(new Font("Serif", Font.BOLD, 17));// fonte , tamanho
		add(lblmar); // adiciona a label

		cmbmarca = new JComboBox();
		cmbmarca.setBackground(Color.WHITE);
		cmbmarca.addItem("Nike");// cada box
		cmbmarca.addItem("Puma");
		cmbmarca.addItem("Adidas");
		cmbmarca.addItem("Diversos");
		cmbmarca.setBounds(560, 138, 100, 20);
		cmbmarca.setFont(new Font("Serif", Font.BOLD, 17));
		add(cmbmarca);

	}

	public static void main(String[] args) {
		CadastroItens ex = new CadastroItens();
		ex.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		ex.getContentPane().setBackground(Color.WHITE); // cor janela
		// ícone na mesma pasta do código fonte
		// ex.setIconImage(new ImageIcon("ico.png").getImage());
		ex.setTitle("Entrada p/ Vendas...");
		// tira o maximizar e alteração do tamanho
		ex.setResizable(true);
		ex.setSize(800, 600);
		ex.setVisible(true);
		ex.setLocationRelativeTo(null);

	}

	@Override
	public void actionPerformed(ActionEvent acesso) {

		boolean okPraSalvar = true;
		String dadosCadastro = "";
		if (txpcompra.getText().isEmpty() || txpvenda.getText().isEmpty() || txcod.getText().isEmpty()
				|| txprod.getText().isEmpty() || txquant.getText().isEmpty())
			okPraSalvar = false;

		// se o acesso for via botão gravar-ok e espaços preenchidos
		else if (acesso.getSource() == btsal && okPraSalvar == true) {
			// marca selecionada
			String sMarca = cmbmarca.getSelectedItem().toString();

			dadosCadastro = "      Cód= " + txcod.getText() + "\n" + "      " + "Produtos = " + txprod.getText() + "\n"
					+ "      " + "Marca = " + sMarca + "\n" + "      " + "Quantidade = " + txquant.getText() + "\n"
					+ "      " + "Compra= " + txpcompra.getText() + "\n" + "      " + "Venda= " + txpvenda.getText();

			// adicionando botoes
			radiovend1 = new JRadioButton("PrimeiroCadastro : " + dadosCadastro);
			radiovend1.setBounds(10, 225, 700, 30);
			radiovend1.setForeground(Color.darkGray);
			radiovend1.setBackground(Color.green);
			radiovend1.setSelected(true);

			// selecionar quais info de vendas salvas vão querer

			venda1 = new ButtonGroup();
			venda1.add(radiovend1);
			add(radiovend1);

			JOptionPane.showMessageDialog(null, dadosCadastro, "Venda  Cadastrada", 1);

			System.out.println("Dados do Cadastro número 1 " + "\n" + dadosCadastro);

		}

		// limpar dados apos salvar
		if (acesso.getSource() == btsal && okPraSalvar == true) {
			txpcompra.setText("");
			txpvenda.setText("");
			txcod.setText("");
			txprod.setText("");
			txquant.setText("");
			txpvenda.setText("");
			cmbmarca.setSelectedIndex(0);
		}

		if (acesso.getSource() == btlimpa) {
			txpcompra.setText("");
			txpvenda.setText("");
			txcod.setText("");
			txprod.setText("");
			txquant.setText("");
			txpvenda.setText("");
			cmbmarca.setSelectedIndex(0);
		}

		if (acesso.getSource() == btexit) {
			System.exit(0);
		}

	}
}