JDialog:如何禁用我的modal dialog的ESC键?
所以有一个框架(主应用程序)。 从这里开始,我打开一个Modal JDialog并启动后台线程,同时在表格中显示进度(日志条目)。 这个过程很关键,不应该是可停止/可隐藏/可关闭的,因此为什么对话框的关闭按钮被取消激活,直到一切都完成。 但是,用户可以随时点击ESC键并调用onCanceled(),从而调用this.dispose()。
编辑:我inheritance了这个项目并监督了inheritance兔洞的深度,因此监督了ESC的处理,接着是e.consume(),这就是为什么我的解决方案无法正常工作!
但是,用户可以随时点击ESC键并调用onCanceled()
这听起来像添加到APP的自定义代码,因为大多数LAF默认情况下不会实现Escape键。 所以我会删除自定义代码。
但是,如果您的LAF的此默认行为,则截取Escape键的正确方法是使用键绑定 。 本教程介绍如何覆盖/删除绑定。
您必须忽略ESC键的笔划。 您可以通过从对话框中侦听键事件来执行此操作,如下所示(假设变量jDialog是您的对话框对象)。
jDialog.addKeyListener(new KeyListener() { @Override public void keyPressed(KeyEvent e) { // Catch ESC key stroke. if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { // TODO ignore or warn user here. // or call e.consume(); } } // Other overriden methods here. });
- HttpClient – Cookies – 和JEditorPane
- Log4j 2不再支持log4j.properties文件了吗?
- Eclipse + GWT – >在开发模式下内存不足
- Createprocess error = 206; 文件名或扩展名太长
- 使用新的BufferedReader“java.io.IOException:Stream closed”
- 如何在jsp页面加载时调用servlet?
- 如何设置用于使用HttpsURLConnection创建的套接字的密码和协议列表?
- Firefox浏览器没有打开selenium webbrowser代码
- request.getParameter返回什么?