JDialog的ESC鍵關閉對話框
Java Swing 中處理JDialog的ESC鍵關閉對話框
同時也可以添加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;
}
}