標籤:
atitit.表單靜聽esc退出本表單java swing c# .net php
1. 監聽esc 按鍵 1
1.1. 監聽一個組件 1
1.2. 監聽加在form上 1
2. 關閉表單 2
1. 監聽esc 按鍵
1.1. 監聽一個組件1.2. 監聽加在form上
作者:: 老哇的爪子 Attilax 艾龍, EMAIL:[email protected]
轉載請註明來源: http://blog.csdn.net/attilax
final Toolkit toolkit = Toolkit.getDefaultToolkit();
toolkit.addAWTEventListener(new AWTEventListener(){
@Override public void eventDispatched(AWTEvent e){
if (e.getID() == KeyEvent.KEY_PRESSED) {
KeyEvent evt = (KeyEvent) e;
if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
frame.dispose();
System.exit(0);
}
}
}
},AWTEvent.KEY_EVENT_MASK);
Java code
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
.............
});
這個辦法最好。監聽了所有事件。不管是在哪個componet上,button,form等..
這個不起作用,可能focus到個一個組件上欄。。三,這個only不個事件捆綁到個frm上蘭..
// frame.addKeyListener(new KeyAdapter() {
// @Override
// public void keyPressed(KeyEvent e) {
// if (KeyEvent.VK_ESCAPE == e.getKeyCode()) {
// // System.exit(0);
// System.out.println("---colose...");
// frame.dispose();
// }
// }
// });
2. 關閉表單
只要在每個Frame裡設定this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);即可。
EXIT_ON_CLOSE,關閉程式。(所有視窗和進程都會關閉)
DISPOSE_ON_CLOSE,只關閉本視窗。
HIDE_ON_CLOSE,只隱藏本視窗,不關閉。
DO_NOTHING_ON_CLOSE,不做任何事,點擊關閉無效。
這很簡單,只要調用dispose方法即可。隱藏是setVisible(false)。關閉程式是System.exit(0);
frame.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
frame.dispose();
// System.exit(0);
}
參考
java怎麼樣通過按鈕關閉一個JFrame_百度知道.htm
atitit.表單靜聽esc退出本表單java swing c# .net php