Como um JComponent pode notificar sobre o evento fechado do quadro J (interno)?
-
20-08-2019 - |
Pergunta
Quero escrever um componente que monitora outras atividades, mas os ouvintes devem ser removidos quando a janela do componente estiver fechada.
Não quero escrever esse código de remoção muitas vezes, mas quero que o componente lida com ele próprio. (Como eu posso fazer isso?
Obrigado!
Solução
o JFrame
classe (que é a janela) tem um processWindowEvent
retorno de chamada que leva um único parâmetro chamado Windowevent
Registrar este retorno de chamada e se o parâmetro for de WINDOW_CLOSED
Você pode chamar o código de remoção dentro.
No final, o código de remoção é escrito apenas uma vez (como você deseja).
Veja o API para mais detalhes.
Atualizar: Veja também isto
Outras dicas
Eu escreveria algo assim
class ListenToWindow
extends WindowAdapter
{
MyInternalFrame frame;
public void windowClosed(event)
{
this.frame.removeAllTheRequiredListeners();
}
}
(...)
JFrame window;
MyInternalFrame frame;
(...)
window.addWindowLister(new ListenToWindow(frame));
(...)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow