2011-06-12 55 views
1

我有Java构建一个游戏在全屏模式下,我用这个代码去全屏:esacpe键退出全屏模式下的Java

this.setPreferredSize(new Dimension((int)screenSize.getWidth(), (int)screenSize.getHeight())); 
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); 
     if(gd.isFullScreenSupported()) { 
      this.setUndecorated(true); 
      gd.setFullScreenWindow(this); 
     } 
     else { 
      System.err.println("Full screen not supported!!"); 

     } 

在某些Windows系统时,我按Esc键程序将退出全屏模式并最小化。我如何阻止这个“功能”?

谢谢。

回答

1

我发现了这个问题,当我切换视图时,程序失去了焦点,所以windows会处理ESCAPE键盘事件。每次视图更改时,我都会通过请求焦点来解决问题。

这样的:

this.addComponentListener(new ComponentAdapter() { 
      @Override 
      public void componentShown(ComponentEvent e) { 
       View.this.requestFocusInWindow(); 
      }    
     }); 
1

编写您自己的按键侦听器,并按照您的要求处理按键。你可以看看this

编辑:this似乎可以解释它更好。

1

如果这是一个使用Swing的,那么你应该使用Key Bindings。 Swing旨在使用KeyBindings,而不是KeyEvents。

+0

使用键绑定和keyListeners消耗ESC键事件中,我已经尝试过,但没有效果。 – Jesse 2011-06-12 20:37:42