Alguém já conseguiu implementar com sucesso InternalFrameListener ?
Parece que isso é um bug, ou eu não sei que tem que chamar uma função doSomethingCrazy() da classe javax.swing.hacks.crazythings.Hack
Alguém já conseguiu implementar com sucesso InternalFrameListener ?
Parece que isso é um bug, ou eu não sei que tem que chamar uma função doSomethingCrazy() da classe javax.swing.hacks.crazythings.Hack
Que maravilha !!! Pensei que era um BUG do Swing, mas na verdade foi cagada minha !!! Alguém consegue ver o erro ???
addInternalFrameListener(new InternalFrameAdapter() {
public void internalFrameClosing(WindowEvent evt) {
int x = Dialogs.showConfirmationMessage("Tem certeza que deseja fechar " + name, "Fechando código...");
if (x == JOptionPane.OK_OPTION) {
JDesktopPane desktop = CodeFrame.this.getDesktopPane();
desktop.remove(CodeFrame.this);
dispose();
desktop.repaint();
}
}
});
Aquele exemplo do Java Tutorial funciona com você?
http://java.sun.com/docs/books/tutorial/uiswing/events/internalframelistener.html
Alguém consegue ver o erro ???A assinatura do método está errada.addInternalFrameListener(new InternalFrameAdapter() { public void internalFrameClosing(WindowEvent evt) { ... } });
public void internalFrameClosing(InternalFrameEvent e) {
}
O compilador não reclamou, porque InternalFrameAdapter já fornece uma implementação vazia de internalFrameClosing(InternalFrameEvent), e você fez um overload (não um override). Isso é muito chato, porque a gente acaba arrancando os cabelos sem ter idéia do que está errado.
Algumas linguagens (nem vou falar o nome delas aqui, para evitar discussão) simplesmente evitam permitir o overload para evitar tais tipos de problemas, ou então forçam que você especifique"overload" na declaração para permitir o overload.
Só perdi 45 minutos procurando no Google e no Bug Parade !!!
Dei um cut and paste de um windowClosing e esqueci de mudar o evento !!!
Bom, é a vida… 