Olá novamente, estive pesquisando sobre como fazer com que um JInternalFrame seja atualizado quando um outro JInternalFrame seja fechado e vi vários usuários sugerindo o uso de listener, tentei pesquisar sobre mas não consegui entender como funciona e principalmente como aplica-lo praticamente ao código, se alguém puder me explicar eu agradeço.
Os listeners em Java são os “escutadores” ou “ouvidores” que são objetos executados quando algum evento acontece, é exatamente o padrão Observer/Observable
. Se olhar a documentação do JInternalFrame, terá o método addInternalFrameListener
que adiciona um InternalFrameListener
, nesta interface tem o método internalFrameClosed
que é chamado quando o JInternalFrame é fechado, então:
class CustomInternalFrameListener implements InternalFrameListener {
public void internalFrameClosed(InternalFrameEvent e) {
outroInternalFrame.atualizar();
}
}
JInternalFrame esteInternalFrame;
JInternalFrame outroInternalFrame;
esteInternalFrame.addInternalFrameListener(new CustomInternalFrameListener());
https://docs.oracle.com/javase/7/docs/api/javax/swing/JInternalFrame.html
https://docs.oracle.com/javase/7/docs/api/javax/swing/event/InternalFrameListener.html
A tradução mais coerente de listener seria “observador” (eu sei, é incoerente, visto que a tradução literal é “ouvidor”, “aquele que ouve”).
Por que isso? É o listener que observa as ações (quaisquer que sejam) que irão disparar um evento qualquer.
Certo, eu entendi o que é um listener, porém ainda tenho dúvidas de como aplicar ele em vários frames, irei estudar mais sobre, obrigado o/