Hola,
Y en otro caso, suponiendo que la clase fuera privada y el método privado del JFrame,
Código Java:
Ver originalpackage application;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
private EventosBotonesListadoPersona delegate;
private java.awt.KeyEventDispatcher dispatcher;
private javax.
swing.
JButton jButton1
;
jButton1
= new javax.
swing.
JButton(); getContentPane
().
setLayout(new javax.
swing.
BoxLayout(getContentPane
(), javax.
swing.
BoxLayout.
LINE_AXIS)); jButton1.setText("Actualizar");
getContentPane().add(jButton1);
pack();
delegate = new EventosBotonesListadoPersona();
dispatcher = new java.awt.KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent
(java.
awt.
event.
KeyEvent e
) { if (e.
getID() == java.
awt.
event.
KeyEvent.
KEY_RELEASED && e.
getKeyCode() == java.
awt.
event.
KeyEvent.
VK_F5) { delegate.mouseClicked(
new java.
util.
Date().
getTime(),
0,
0,
0,
1,
false)); }
return false;
}
};
java.awt.KeyboardFocusManager.
getCurrentKeyboardFocusManager().
addKeyEventDispatcher(dispatcher);
jButton1.addMouseListener(delegate);
}
@Override
public void dispose() {
java.awt.KeyboardFocusManager.
getCurrentKeyboardFocusManager().
removeKeyEventDispatcher(dispatcher);
super.dispose();
}
private void verActualizarPersona() {
System.
out.
println("Abrir dialogo ..."); }
private class EventosBotonesListadoPersona
implements MouseListener {
@Override
verActualizarPersona();
}
@Override
}
@Override
}
@Override
}
@Override
}
}
}
Realmente no miro cual es el problema según la descripción que diste. Al presionar la tecla F5,
en cualquier lugar de toda la aplicación, se llama al método verActualizarPersona.
Y si lo quieres simplificar más, cambia esta parte del código:
Código Java:
Ver originalpublic boolean dispatchKeyEvent
(java.
awt.
event.
KeyEvent e
) { if (e.
getID() == java.
awt.
event.
KeyEvent.
KEY_RELEASED && e.
getKeyCode() == java.
awt.
event.
KeyEvent.
VK_F5) { verActualizarPersona(); // Llamada al método directamente.
}
return false;
}
};
Saludos,