Fenster soll sich bei auf Druck auf ESC schließen

Status
Nicht offen für weitere Antworten.

BigmasterDenis

Aktives Mitglied
Hi Leute!

Ich möchte erreichen, dass sich ein JFrame per Druck auf die ESC-Taste schließen lässt. Habe es mit der folgenen Methode versucht:

Code:
public void keyPressed(KeyEvent k)
	{	    		
	    if(k.getKeyCode()==KeyEvent.VK_ESCAPE)
	    {  	
                setVisible(false);
	    }
	}

Das Frame jedoch, lässt sich vom Druck auf ESC leider völlig unbeeindruckt. Was mache ich falsch? Muss die Methode nicht automatisch greifen, wenn ich irgendwann auf ESC drücke?


thanx4help
 
Das funktioniert deshalb nicht, da nur Komponenten die fokusierbar sind und den Fokus besitzen KeyEvents empfangen.
Wenn das so eine Art globaler Hotkey sein soll, dann kannst du mit hilfe des Toolkits einen AWTEventListener registrieren, der dann alle Events bekommt.
 
Code:
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
		
	public void eventDispatched(AWTEvent event)
	{
		// TODO Auto-generated method stub
		
	}
		
}, AWTEvent.KEY_EVENT_MASK);
 
Du kannst auch in deinem JFrame sowas machen:
Code:
getRootPane().registerKeyboardAction(new ActionListener()
                {
                    public void actionPerformed(ActionEvent e)
                    {
                        // do something
                    }
                },KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0), JComponent.WHEN_IN_FOCUSED_WINDOW);
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben