Fechar um JFrame por meio de outro jFrame[RESOLVIDO]

Boa noite, pesquisei muito aqui no forum e oque achei ainda me deixou em duvidas, e como o topico estava fechado precisei criar um outro.
Estou fazendo uma aplicação em JAVA no NetBeans para minha apresentação de TCC, e estou precisando fechar um JFrame a partir de outro JFrame. Tipo, tenho o JFrame de venda, e aciono o botão que chama o JFrame de pagamento da venda, ao acionar o botao Concluir do JFrame de pagamento desejo fechar os dois JFrames ( o de pagamento e o de venda).

Grato desde já.

objetoDoTipoJFrame.setVisible(false);

mas no caso o setVisible não mantem o jframe na memoria?

Faz o seguinte:
na classe pagamento cria um atributo publico;
quando vc chamar o frame pagamento ao abrir e fazer o que tem que fazer, ao clicar em concluir ele atribui o valor true;
na tela de que chamou venda, dentro do mesmo botao vc faz uma condição que verifica esse atributo,
se verdadeiro fecha a frame venda
false não fecha;

não deu certo, eu fiz assim:
na tela de pagamento, botão concluir:

    String nome = (String) jComboBoxTipo.getSelectedItem();
    daovenda.AtualizaPagamento(nome);
    venda.setPagamento(true);
    dispose();

e na tela de vendas fiz a parte da comparação

    public RealizaVendaInter() {
   
    initComponents();

    if(venda.isPagamento() == true){
        dispose();
    }
    }

sendo que a variável pagamento deixei ela diretamente como false.
apos sair da tela de pagamento, a tela de venda se manteve

Olá, você só precisa passar a instancia da tela de venda para a tela de pagamento através do construtor,ex:

Na tela de Venda

// O parâmetro passa a própria instância para a tela de pagamento
TelaPagamento tp = new TelaPagamento(this);
tp.show();

Na tela de pagamento

// Construtor
private TelaVenda telaVenda;
public TelaPagamento(TelaVenda telaVenda){
    initComponents();
    
   // Aqui se passa a instancia da tela de venda para a tela de pgto.
   this.telaVenda = telaVenda;     
}

// Método que fecha as telas depois do pagamento (esse método está na tela de pagamento)
private void realizarPagamento(){
//... Sua lógica ...

 dispose();
 telaVenda.dispose();
}

muito obrigado, consegui com essa sua dica,
porem a linha new PgmVenda(telavenda).setVisible(true); fica com o seguinte erro:
non-static variable telavenda cannot be referenced from a static context

public static void main(String args[]) {
.....
java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new PgmVenda(telavenda).setVisible(true);
        }
    });
}

mesmo com este erro o JFrame funciona.

Isso ocorre pois o método main é estático, mas você não precisa dele, pois ele é necessário somente nas classes ou telas que iniciem seu sistema, ou seja, na tela principal.

Sim, assim você não precisa realocar ele novamente quando quiser apresentá-lo.
Se isso for problema, utilize o dispose ao invés de setVisible

A sim, entendi.

Entendo.

Obrigado a todos que ajudaram, consegui resolver usando a maneira que o andrauss me indicou.