Acessar uma classa através de outra janela

Olá pessoal…
Estou fazendo o meu primeiro programa com interface grafica e estou com um problema. É o seguinte:
Tenho um JFrame (modulo_Vendas) que exibe o resultado da consulta a um banco de dados e calcula o valor que deverá ser pago pelo cliente e a quantidade de itens que foram comprados. Até ai, tudo bem.
Mas após calculados esses valores, eles são enviados para a classe chamada encerra_Compra que armazena o subtotal e a quantidade de itens comprados e deveria exibi-los em outro JFrame (modulo_Pagamento).

public class encerrar_Compra {
    
    /** Creates a new instance of encerrar_Compra */
    private float subtotal;
    private int itens;
    
    public encerrar_Compra(float subtotal, int qtd_itens) {
        setTotal(subtotal);
        setItens(qtd_itens);
    }
    
    public encerrar_Compra(){
        // construtor vazio
    }
    
    public  void setTotal( float subtotal ){
        this.subtotal = subtotal;
    }
    public void setItens ( int qtd_itens ){
        itens = qtd_itens;
    }
    public float getTotal(){
        return subtotal;
        
    }
    public int getItens(){
        return itens;
    }
}

Só que quando eu tento exibir o resultado do método getTotal em um JTextField na classe modulo_Pagamento, o valor aparece 0.0!
Tentei fazer com que ele exibisse o valor de getTotal em um JLabel na classe modulo_Vendas e funcionou! só não funciona quando eu tento fazer ele aparecer na outra janela.

Na classe modulo_Vendas, monto ele assim:

encerrar_Compra fechar_conta  = new encerrar_Compra(subtotal, itens);

E na classe modulo_Pagamento, que não está funcinando, faço assim:

encerrar_Compra fechar_conta = new encerrar_Compra(); // uso o construtor que está vazio 
    float total = fechar_conta.getTotal();
    jTextField1.setText(Float.toString(total));

Obrigado a todos…

Olá Herm?io vc não está conseguindo acessar o objeto da outra classe pois está criando 2 objetos distintos de uma mesma classe. Preciso de mais informações sobre como está sendo feito sua chamada nos módulos vendas e pagamentos para dar uma solução mais precisa. Vc poderia colocar o atributo subtotal como private, ai qualquer instância da classe encerrar_compra apontaria sempre para o mesmo valor. Mas devo alertar que tota a instânciação da classe encerrar_compra sempre terá o ultimo valor alterado por qualquer instância do objeto, por isso vc deve ter cuidado…

Obrigado pela ajuda… vou postar abaixo como o programa funciona. Ao clicar no botão ‘Registrar produto’, ele vai no banco, pega o nome e o preço, calcula o subtotal e envia para a classe encerrar_Compra:

Abaixo vai o códigoo do evento:

acesso_Banco banco = new acesso_Banco();
        erro_SemCodigo erro = new erro_SemCodigo();
        if (jTextField1.getText() == ""){
            
            erro.setVisible(true);
        }
        // captura o código, faz a pesquisa no banco e exibe o nome do produto.
        String codigo = jTextField1.getText();
        jTextField2.setText(banco.getProduto(codigo));
       
 // captura o preço a partir do código, converte para float e exibe o preço unitário do produto.
        String preco = banco.getPreco(codigo);
        float p = Float.parseFloat(preco);
        jTextField3.setText(Float.toString(p));
       
 // captura a quantidade de produtos para multiplicar pelo preço unitário e formar o preço total.
        String quantidade = jTextField4.getText();
        float qtd = Float.parseFloat(quantidade);
        float novo_preco = p*qtd;
       
 // exibe o preço total e calcula o sbutotal.      
        jTextField6.setText(Float.toString(novo_preco));
        preco_anterior = subtotal;
        subtotal = novo_preco + subtotal;
        jTextField5.setText("R$: "+Float.toString(subtotal));
        
// exibe a quantidade de itens comprados;
        itens++;
        jLabel10.setText(Integer.toString(itens));
        
        
//faz a chamada e envia os parametros subtotal e itens para a nova classe
        encerrar_Compra fechar_conta = new encerrar_Compra(subtotal, itens);
        
        
// fiz esse teste para ver se ele estava "setando os valores", e o teste funcionou.
        float aux = fechar_conta.getTotal();
        jLabel11.setText(Float.toString(aux));

Depois disso, quando clico no botão ‘Encerrar compra’, ele chama a outra janela e fecha a janela atual…

Código:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

modulo_Pagamento pagamento = new modulo_Pagamento();
pagamento.setVisible(true);
this.dispose();
   
 }                                        

Já na janela ‘Pagamento’, faço isso:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    encerrar_Compra fechar_conta = new encerrar_Compra();
    float total = fechar_conta.getTotal();
    jTextField1.setText(Float.toString(total));
        
}            

E ainda não funciona… No jTextField, ele ainda exibe 0.0 !
Tentei fazer uma gambiarra, criei uma subclasse de encerrar_Compra que tinha esse método:

public float getTotal(){
String total = super.getTotal();
return total;

Ainda assim, não funcionou…

Obrigado a todos

Olá… alguem pode me ajudar? :smiley: