欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

atitit.窗体静听esc退出本窗体java swing c# .net php

程序员文章站 2022-03-20 10:01:49
...
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:1466519819@qq.com

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