Indebuggeable

this.addKeyPressedRecursive (this.getComponents()) ; //Esto iría en cualquier parteEsto está muy bien, te cierra el Dialog que has abierto y todo eso. Sólo que se pasa un poco. Cierra absolutamente todo lo que tengas abierto (el Eclipse no, no sé porqué). Pero si lo intentas depurar (debug), funciona bien. Es un bug indebuggeable. Ideal para bugbusters.
private void addKeyPressedRecursive (Component c[]) {
Action escape = new EscapeAction () ;
for (int i = 0 ; i < c.length ; i ++ ) {
if (c [i] instanceof Container) {
addKeyPressedRecursive (((Container) c [i]).getComponents ()) ;
}
((JComponent) c [i]).getInputMap ().put (KeyStroke.getKeyStroke (
KeyEvent.VK_ESCAPE, 0), escape) ;
((JComponent) c [i]).getActionMap ().put (escape, escape) ;
}
}
private class EscapeAction extends AbstractAction {
public void actionPerformed(ActionEvent e) {
((JDialog) this.getRootPane ().getParent ()).dispose () ;
}
}
Por cierto, la única solución que he encontrado de momento es sustituir lo marcado en rojo por:
c[i].addKeyListener(new java.awt.event.KeyAdapter() {De todas formas, Chuchi, al fin encontré una manera menos guarra de controlar la maldita tecla :)
public void keyReleased(java.awt.event.KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
((JDialog) this.getRootPane ().getParent ()).dispose () ;
}
});
Compártenos:
2 Comentarios:
Ese chals!!!! Eres un monstruo :) Ya mañana voy a currelar que ya estoy mejor.
Si mañana piensas darme otra paliza como la de hoy, por mí vuelve a cogerte la baja... argh!, toda la tarde cargando ordenadores de aquí pá'llá
Publicar un comentario
<< Principal