JDialog的ESC鍵關閉對話框

lyz 14年前發布 | 5K 次閱讀 JavaSwing

Java Swing 中處理JDialogESC鍵關閉對話框

 

同時也可以添加ENTER鍵動作,采用抽象方法,在子類中實現其功能

 

 

 

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

 

import javax.swing.JComponent;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JRootPane;

import javax.swing.KeyStroke;

 

public abstract class JDialog_Lyz extends JDialog {

 

    public JDialog_Lyz(JFrame owner, String title, boolean modal) {

       super(owner, title, modal);

    }

 

    public JDialog_Lyz(JDialog owner, String title, boolean modal) {

       super(owner, title, modal);

    }

   

   

    public abstract void enterEvent();//Enter 鍵事件處理

   

    protected JRootPane createRootPane() {

       /*

        * ESC

        */

       ActionListener actionListener_Esc = new ActionListener() {

           public void actionPerformed(ActionEvent actionEvent) {

              dispose();

           }

       };

       /*

        * Enter

        */

       ActionListener actionListener_Enter = new ActionListener(){

           public void actionPerformed(ActionEvent e) {

              enterEvent();

           }

       };

       JRootPane rootPane = new JRootPane();

       rootPane.registerKeyboardAction(actionListener_Esc, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),JComponent.WHEN_IN_FOCUSED_WINDOW);

       rootPane.registerKeyboardAction(actionListener_Enter, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),JComponent.WHEN_IN_FOCUSED_WINDOW);

       return rootPane;

    }

 

}

 

 本文由用戶 lyz 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!