Fechar um JFrame por meio de outro jFrame[RESOLVIDO]
9 respostasResolvido
jframeprogramaçãojava
X
xuao
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).
sendo que a variável pagamento deixei ela diretamente como false.
apos sair da tela de pagamento, a tela de venda se manteve
A
Solucao aceita
Andrauss
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 pagamentoTelaPagamentotp=newTelaPagamento(this);tp.show();
Na tela de pagamento
// ConstrutorprivateTelaVendatelaVenda;publicTelaPagamento(TelaVendatelaVenda){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)privatevoidrealizarPagamento(){//... Sua lógica ...dispose();telaVenda.dispose();}
X
xuao
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
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.
S
staroski
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
X
xuao
A sim, entendi.
Entendo.
Obrigado a todos que ajudaram, consegui resolver usando a maneira que o andrauss me indicou.