Auch wenn dieser Thread schon alt ist, kann folgender Code auch Helfen:
(Ich hatte mit anderen evt. eleganteren Lösungen nur Probleme)
Und Zum Aufrufen:
Und Mein KeyListener:
Vielleicht hilft das jemanden in der Zukunft...
(Ich hatte mit anderen evt. eleganteren Lösungen nur Probleme)
Code:
public final class Helper {
public static void addKeyListenerALL(KeyListener kl, Component[] comps) {
for(int i = 0; i < comps.length; i++) {
comps[i].addKeyListener(kl);
if(comps[i] instanceof Container && ((Container) comps[i]).getComponents().length != 0)
addKeyListenerALL(kl,((Container) comps[i]).getComponents());
}
}
}
Und Zum Aufrufen:
Code:
public class InternalFrameGUI extends javax.swing.JInternalFrame {
public InternalFrameGUI() {
Helper.addKeyListenerALL(new ESCListener(this), this.getComponents());
}
}
Und Mein KeyListener:
Code:
public class ESCListener implements KeyListener {
JInternalFrame iframe;
JFrame frame;
JDialog dialog;
public ESCListener(JInternalFrame frame) {
this.iframe = frame;
}
public ESCListener(JFrame frame) {
this.frame = frame;
}
public ESCListener(JDialog frame) {
this.dialog = frame;
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
if(iframe != null) iframe.dispose();
if(frame != null) frame.dispose();
if(dialog != null) dialog.dispose();
}
}
public void keyReleased(KeyEvent e) {
}
}
Vielleicht hilft das jemanden in der Zukunft...