JDialog 取消按钮

2023-12-21

如何在 Swing 中设置取消按钮JDialog,即如果用户按下键盘上的“取消”键,其操作会自动执行的按钮?

通过以下方式向对方提供默认操作setDefaultButton对话框根窗格的方法。

如果这有帮助,我正在寻找 WinForms 的类似物Form.CancelButton财产。


我能看到的最好的方法是添加一个Action到根窗格的操作映射,并使用根窗格的输入映射将该操作链接到转义键。

为此,您需要一个Action。如果您的取消按钮的行为是作为操作实现的(即cancelButton.getAction() != null),那么这将起作用:



getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "CANCEL");
getRootPane().getActionMap().put("CANCEL", cancelButton.getAction());
  

否则,如果取消按钮的逻辑是通过ActionListener,你可以拥有actionPerformed()的方法ActionListener call a private void onCancel()实现逻辑的方法,并注册调用相同方法的“取消”操作。



getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "CANCEL");
getRootPane().getActionMap().put("CANCEL", new AbstractAction(){
    @Override
    public void actionPerformed(ActionEvent e)
    {
        onCancel();
    }
});
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDialog 取消按钮 的相关文章

随机推荐

  • 如何阻止 gke-metadata-server 继续生成此日志?

    我创建了一个部署 意味着在启用工作负载身份的情况下将消息从 pubsub 插入到 bigquery 云日志不断向我发送此类日志 insertId test jsonPayload message rpc id test computeMet
  • 是否有关于 Dagger 在注入依赖项时何时回退到反射的文档?

    我的团队在我们的 Android 应用程序中采用了 Dagger 进行依赖注入 我必须说到目前为止我们很喜欢它 然而 我们希望确保我们有效地使用它 我想知道是否有人可以解释或者是否有任何文档解释 Dagger 回退到反射来注入依赖项的情况
  • 如何使用 EmberJS 在路由中加载 ownTo/hasMany 关系

    在我的 Ember JS 应用程序中 我显示了一个约会列表 在约会控制器的操作中 我需要获取约会所有者 但所有者始终返回 未定义 我的文件 模型 appointment js import DS from ember data export
  • R CMD 检查因“未定义的导出”而失败

    我正在尝试创建 R 包 但不断收到错误 Error in namespaceExport ns exports undefined exports MCLE defineFunctions naiveMLE 跑步时R CMD check在我
  • JPA2 Criteria API 运行时从 varchar(25) 转换为十进制

    因此 我已经看到类似主题上堆栈溢出的所有线程 但我没有找到解决我的问题的方法 我正在尝试创建一个 Criteria 查询 并得到以下 SQL 第一个 SQL 简化版 SELECT latitude FROM stations WHERE A
  • Javascript momentjs 将 UTC 从字符串转换为日期对象

    各位 在处理 moment js 文档时遇到困难 record lastModified moment utc format returns 2014 11 11T21 29 05 00 00 太棒了 它是 UTC 当我将其存储在 Mong
  • 在 Windows 上使用 C 将数据流式传输到声卡 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 作为大学项目的一部分 我必须进行一些信号处理 并希望使用 PC 声卡输出结果 该软件必须用 C 语言编写
  • 如何正确使用批处理 Tensorflow 数据集?

    我是 Tensorflow 和深度学习的新手 并且在 Dataset 类上遇到了困难 我尝试了很多方法 但找不到好的解决方案 我正在尝试什么 我有大量图像 500k 来训练我的 DNN 这是一个去噪自动编码器 所以我每个图像都有一对 我正在
  • ActionBar 菜单项中的 orderInCategory 是什么以及为什么它用于..?

    我正在处理操作菜单项及其溢出项 这是我的main menu xml menu menu
  • 如何让 Maven 构建更快?

    我有一个多模块java项目 Maven 大约需要 40 秒来构建它 我也尝试过使用多线程构建 Maven 方法是指定 T 和 C 参数来表示不使用任何线程和核心 但我还没有看到我的构建的墙时间有任何显着的改进 我正在使用 maven 3 2
  • 如何防止每次运行整个笔记本时运行“pip install ...”?

    我运行的大多数 python 笔记本在初始运行时往往需要一些设置 使用 pip install 每次运行笔记本时都执行设置代码效率很低 因此我宁愿避免这种情况 另外 我不想将设置代码移动到不同的笔记本 因为通常它只是几行代码 我的解决方案是
  • 在 Python 中将 ASCII 代码列表转换为字符串(字节数组)

    我有一个整数 ASCII 值列表 需要将其转换为字符串 二进制 以用作加密操作的密钥 我正在用python重新实现java加密代码 这是可行的 假设密钥是 8 字节 key struct pack BBBBBBBB 17 24 121 1
  • 如何在Linux上列出非空子目录?

    我有一个包含多个子目录的目录 我只想列出那些至少包含一个文件的子目录 我怎样才能做到这一点 find mindepth 1 maxdepth 1 not empty type d 将为您提供所有非空目录 如果您想排除仅包含其他目录 但不包含
  • 抽象类返回

    抱歉 如果这是一件小事 我创建了一个带有一些子类的抽象类 控制器类创建请求子类类型的抽象类类型的对象 并返回实现的抽象类 子类具有特定的属性 我无法访问返回对象的这些属性 因为这是抽象类默认类型 所以我尝试进行转换 但这会出现错误 item
  • 在 Heroku 上运行 Rails 单元测试

    我已经将一个应用程序部署到 Heroku 一切正常 问题是我无法远程运行单元测试 我试过了 heroku rake test units and heroku rake db test prepare 但对于两者 我都得到了大量的堆栈跟踪
  • 重命名远程分支

    我创建了一个本地分支 X 在某个时候我将其推送到远程服务器 来源 git push origin X 我意识到将分支命名为 X 并希望将其命名为 Y 是一个坏主意 问题是我已经将分支推送到存储库 从服务器中删除它并以这样的新名称推送它是否安
  • 在 Marshmallow 上不会调用 Spannable String 的绘制方法

    我的应用程序中有一个日历 日历是一个带有每个日期按钮的 GridView 我尝试用下面的课程给它们上色 public class CircleSpan extends ReplacementSpan private final float
  • 在 ActionBar 中获取 Switch 实例

    我设法在操作栏内放置了一个开关 如 Wi Fi 设置中一样 我把以下内容主菜单 xml menu 文件夹内的文件 menu menu
  • 保存和重用 SPARQL 查询的结果

    我正在使用 Jena 通过 Eclipse 查询 owl 文件 我想做一些连续的查询 每个新查询都将使用前一个查询的结果 我想在不同的 SELECT 中执行此操作 并每次保存查询结果 以便在新查询中再次使用它 我不想自己插入变量的值 而是从
  • JDialog 取消按钮

    如何在 Swing 中设置取消按钮JDialog 即如果用户按下键盘上的 取消 键 其操作会自动执行的按钮 通过以下方式向对方提供默认操作setDefaultButton对话框根窗格的方法 如果这有帮助 我正在寻找 WinForms 的类似