JTextField continua como mesmo valor após uso do método dispose()

Boa noite rapaziada do GUJ.

Estou iniciando em programação e estou com um problema que já estou quebrando cabeça
faz dias e não consigo solucionar.

Tenho uma classe chamada FormPrincipalSwing que extends JFrame que possui uma JMenuBar com um JMenuItem chamado PDV.

Ao clicar no item do menu chamado PDV é exibido uma JFrame que possui um JTextField,
uma JTable e alguns JLabels.

Conforme eu vou adicionando produtos na JTable dentro do JTextField é exibido o valor
total da venda.

Tenho dois eventos de teclado um F6 que invoca o dispose().

KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getID() == KeyEvent.KEY_RELEASED && event.getKeyCode() == KeyEvent.VK_F6) {

					frame.dispose();
					
				// return true;
			}
			return false;
		}
	});

Tenho também um evento de teclado F4 que finaliza a venda.

KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getID() == KeyEvent.KEY_RELEASED && event.getKeyCode() == KeyEvent.VK_F4) {

				double valorTotalDaVendaConvertido = 0.0;
				
				if (!tfValorTotalDaVenda.getText().equals("")) {

					try {
						
						valorTotalDaVendaConvertido = Double.parseDouble(tfValorTotalDaVenda.getText());
						
						formaPagamentoPDV2 = new FormPagamentoPDV2(); 
						
			formaPagamentoPDV2.setValorTotal(valorTotalDaVendaConvertido);

						formaPagamentoPDV2.setTextFieldSubTotal();
					
					} catch (NumberFormatException e) {

						e.printStackTrace();
					}
				}

				formaPagamentoPDV2.setVisible(true);

				tfValorTotalDaVenda.setForeground(new Color(255, 0, 0));
				tfValorTotalDaVenda.setFont(new Font("Tahome", Font.BOLD, 18));
				tfValorTotalDaVenda.setText(String.valueOf(formaPagamentoPDV2.getTextFieldSubTotal()));
				
				if(formaPagamentoPDV2.getVendaFinalizada()) {
					
					finalizaVenda();
					
				}else {
					
					formaPagamentoPDV2.getLimpaFormularioPagamento();
					JOptionPane.showMessageDialog(null, "Você cancelou o pagamento!");
				}
				
				tfValorTotalDaVenda.setText(formaPagamentoPDV.getValorTotal());
			
				return true;
			}
			return false;
		}
	});

O problema é o seguinte:

Se eu adiciono os produtos na JTable da JFrame FormPDV é exebido no JTexField o valor
total da venda, e ao invés de eu apertar F4 para finalizar a venda eu aperto F6 para
fechar a jenela, ou seja, é executado o método dispose().

Então vou lá no item do menu chamado PDV e abro novamente a JFrame FormPDV, dessa
vez eu adiciono os produtos na JTable e no JTextField é exibido o valor total da venda, até
aí normal, mas quando clico em F4 para finalizar a venda é exibida o JDialog com o valor
da 1° JFrame de FormPDV aberta ao invés do valor da 2° JFrame aberta de FormPDV.

Ou seja, depois da execução do método dispose() o campo JTextField não atualiza o valor, o valor da 1° JFrame FormPDV é mantido na 2° JFrame aberta de FormPDV.