Bom dia,
tenho uma tela contendo todos clientes em uma JTable, também tenho um botão Adicionar, quando click no botão chama outro frame contendo os campos para inserir. O problema é: Quando insiro um novo cliente esse frame fecha e volta para o anterior com a lista de clientes, como faço para atualizar essa lista da JTable quando volta pra ela? Existe algum evento que quando o frame recebe o foco novamente eu possa estar chamando um método pra atualizar a tabela?
Existe sim ,
frame.addWindowFocusListener( new WindowFocusListener() {
@Override
public void windowLostFocus(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowGainedFocus(WindowEvent e) {
// TODO Auto-generated method stub
}
});
Mas acho que no seu caso seja mais correto fazer um evento ao FECHAR a tela de adição.
frame.addWindowListener( new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
// do something
}
} );
Normalmente quando precisas de um evento que ocorra após uma ação, procure nos métodos do objeto algo iniciando com add e terminando com Listener
tipo:
addWindowFocusListener
addWindowListener
add*Listener
O mais fácil é usar um JDialog. Até para seu usuário não voltar para a tela anterior enquanto não fechar o dialog.
Veja um exemplo: http://www.guj.com.br/java/55710-jdialog-devolvendo-valor-pra-jinternalframe#292687
Um JDialog modal irá travar o JFrame que o chamou quando ele dá um setVisible(true). Portanto, o código que vem abaixo disso só será ativado caso a dialog seja fechada.