Swing JDialog监听回车键

   在做项目时,发现在JDialog中,直接通过addKeyListener来监听回车键不起作用,无法监听到回车键,后面在网上查了些资料,终于解决了。方法如下:

   KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0);

   this.getRootPane().registerKeyboardAction(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
     // TODO Auto-generated method stub
 //do something
  }
  }, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW);

或者重写createRootPane方法,在方法里面注册keyboardaction

  1. @Override  
  2.     protected JRootPane createRootPane(){  
  3.         KeyStroke  stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0);  
  4.         JRootPane rootPane = new JRootPane();  
  5.         rootPane.registerKeyboardAction(new ActionListener() {  
  6.               
  7.             @Override  
  8.             public void actionPerformed(ActionEvent e) {  
  9.                 escapeKeyProc();  
  10.             }  
  11.         },stroke, JComponent.WHEN_IN_FOCUSED_WINDOW);  
  12.   
  13.         return rootPane;  
  14.     }  
posted @ 2014-04-02 10:48  天涯雪  阅读(887)  评论(0编辑  收藏  举报