2016-08-06 32 views
0

Ich habe diesen Code verwenden vollen Umfang nutzen zu gehen:wie aus dem Vollbildmodus in Java zu entkommen?

private void fullScreenPerformed(java.awt.event.ActionEvent evt) { 

    full = new JFrame(); 
    full.setSize(Toolkit.getDefaultToolkit().getScreenSize()); 
    full.setUndecorated(true); 
    full.setVisible(true); 
} 

Wenn ich das Programm ausführen, die JFrame im Vollbild-Modus stecken, und ich kann es nicht schließen, wenn ich escape drücken. Daher musste ich meinen Computer neu starten oder abmelden, um wieder zum normalen Bildschirm zurückzukehren. Ich möchte, dass der Benutzer es durch Drücken der "Escape-Taste" oder durch Verwendung anderer Kombinationen schließen kann. Wie kann ich das tun?

Antwort

0

Versuchen Sie, diese

KeyStroke k = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); 
int w = full.WHEN_IN_FOCUSED_WINDOW; 
dialog.getRootPane().registerKeyboardAction(e -> window.dispose(), k, w); 
0

Sie benötigen einen keyEventListener dafür hinzuzufügen, die den Rahmen verfügt, wenn Sie Escape gedrückt haben. Danach wird es nicht wieder verwendbar sein.

full.addKeyListener(new KeyAdapter() { 
    public void keyPressed(KeyEvent evt) { 
     if(evt.getKeyCode() == KeyEvent.VK_ESCAPE) 
      full.dispose(); 
    } 
}); 

Beachten Sie, dass der Rahmen fokussiert werden muss, da andernfalls das Ereignis nicht ausgelöst wird.