By sharing an InputMap or ActionMap, any change to the shared InputMap or ActionMap will affect all components sharing the InputMap or ActionMap. WHEN_FOCUSED and WHEN_ANCESTOR_OF_FOCUSED_COMPONENT types of InputMaps can be shared. WHEN_IN_FOCUSED_WINDOW InputMaps cannot be shared.

    // Get an InputMap from the desired type of component and initialize it
InputMap im = new JTextArea().getInputMap(JComponent.WHEN_FOCUSED);
im.put(KeyStroke.getKeyStroke("F2"), "actionName"); // Get an ActionMap from the desired type of component and initialize it
ActionMap am = new JTextArea().getActionMap();
am.put("actionName",
new AbstractAction("actionName") {
public void actionPerformed(ActionEvent evt) {
process((JTextComponent)evt.getSource());
}
}
); // Use the shared InputMap and ActionMap
component1.setInputMap(JComponent.WHEN_FOCUSED, im);
component2.setInputMap(JComponent.WHEN_FOCUSED, im); component1.setActionMap(am);
component2.setActionMap(am); // Now, any change to the shared InputMap or ActionMap will affect both component1 and component2
im.put(KeyStroke.getKeyStroke("F3"), "actionName2");
am.put("actionName2",
new AbstractAction("actionName2") {
public void actionPerformed(ActionEvent evt) {
process((JTextComponent)evt.getSource());
}
}
);
Related Examples

e861. 在两个组件之间共享输入映射和事件映射的更多相关文章

  1. 两个Activity之间共享数据、互相访问的另一种方式的实现

    本帖最后由 勇敢的心_ 于 2010-9-29 11:51 编辑 本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可 ...

  2. controller中两个方法之间共享一个变量LinkedHashMap

    1:引用传递,创建一个变量,给两个线程都传递进去. 2:静态修饰 static  通过该修饰符说明,该变量只有一份,  所有线程共用一份. 例如下面的htmlidMap通过static变量修饰, up ...

  3. vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据

    在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-se ...

  4. winform两个窗体之间传值(C#委托事件实现)

    委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一 ...

  5. Prism 4 文档 ---第10章 Silverlight和WPF之间共享代码

        本主题帮助你理解来自Prism的多目标和它的优缺点.多目标的代码针对两个不同的平台有大致相同的代码库.这允许同时保持代码尽可能多一样能够产生针对两种不同技术的二进制文件.在这种情况下,本节介绍 ...

  6. WEB组件之间的关系

    WEB组件之间的关系: A:重定向的特点: 1:发生客户端 2:地址栏发生变化 3:两个WEB组件不共享request的数据. 4 重定向只能传递文本类型数据 服务端的方法:response.send ...

  7. angular组件之间的通讯

    组件通讯,意在不同的指令和组件之间共享信息.如何在两个多个组件之间共享信息呢. 最近在项目上,组件跟组件之间可能是父子关系,兄弟关系,爷孙关系都有.....我也找找了很多关于组件之间通讯的方法,不同的 ...

  8. Angular10 组件之间的通讯

    1 父组件和子组件之间的通讯 2 利用中间组件实现两个组件之间的通讯 3 利用服务实现两个组件之间的通讯 2017年8月26日20:09:13 待更新... 1 组件之间的关系图 1.1 父子关系 1 ...

  9. 【译】在 ASP.NET 和 ASP.NET Core 之间共享代码

    原文 | Ken 翻译 | 郑子铭 随着 .NET 6 的发布,使用 ASP.NET Core 可以获得更多好处.但是将现有代码迁移到 ASP.NET Core 通常听起来像是一项巨大的投资.今天我们 ...

随机推荐

  1. [Windows Azure] Windows Azure Storage & SQL Database

    http://channel9.msdn.com/Series/Windows-Azure-Storage-SQL-Database-Tutorials Windows Azure offers mu ...

  2. SVN Cleanup failed to process the following paths错误的解决

    在使用TortoiseSVN工具执行Cleanup操作时经常出现Cleanup failed to process the following paths的错误,具体如下图: 网上搜索了一下,找到了解 ...

  3. linux Ctrl+z和Ctrl+c的区别

    1.Ctrl+z 挂起进程,并不会结束,执行fg命令可以重新启动这个被挂起的命令. 2.Ctrl+c 终止进程

  4. js模拟form打开新窗口

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. testUrl

    def ConnectTest(url): try: response = requests.get(url) return response.status_code except requests. ...

  6. css优化建议

    1.不要使用过小的图片做背景平铺.这就是为何很多人都不用 1px 的原因,这才知晓.宽高 1px 的图片平铺出一个宽高 200px 的区域,需要 200*200=40, 000 次,占用资源. 2.无 ...

  7. JAVA-数据库之更新记录

    相关资料:<21天学通Java Web开发> 更新记录 StatementUpdate.jsp <%@ page language="java" contentT ...

  8. Nosql相关产品和分布式相关中间件

    1.memcached 2.redis 3.mongodb 4.消息队列的运用

  9. spring boot模仿reponseBody注解,自定义注解,返回值加上元数据

    简介 ResponseBody是通过RequestResponseBodyMethodProcessor起作用的. 我们的做法是写一个包装类,替换掉他 问题:怎么替换呢? 取出 Spring的List ...

  10. 在 Linux 下用 grep 时高亮显示匹配的部分

    用 grep 匹配文件时,显示结果黑压压的一片执行一下这条命令,重新 grep 试试看export GREP_OPTIONS='--color=auto'好看多了,不是吗?你可以把 export GR ...