e861. 在两个组件之间共享输入映射和事件映射
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. 在两个组件之间共享输入映射和事件映射的更多相关文章
- 两个Activity之间共享数据、互相访问的另一种方式的实现
		
本帖最后由 勇敢的心_ 于 2010-9-29 11:51 编辑 本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可 ...
 - controller中两个方法之间共享一个变量LinkedHashMap
		
1:引用传递,创建一个变量,给两个线程都传递进去. 2:静态修饰 static 通过该修饰符说明,该变量只有一份, 所有线程共用一份. 例如下面的htmlidMap通过static变量修饰, up ...
 - vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据
		
在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-se ...
 - winform两个窗体之间传值(C#委托事件实现)
		
委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一 ...
 - Prism 4 文档 ---第10章 Silverlight和WPF之间共享代码
		
本主题帮助你理解来自Prism的多目标和它的优缺点.多目标的代码针对两个不同的平台有大致相同的代码库.这允许同时保持代码尽可能多一样能够产生针对两种不同技术的二进制文件.在这种情况下,本节介绍 ...
 - WEB组件之间的关系
		
WEB组件之间的关系: A:重定向的特点: 1:发生客户端 2:地址栏发生变化 3:两个WEB组件不共享request的数据. 4 重定向只能传递文本类型数据 服务端的方法:response.send ...
 - angular组件之间的通讯
		
组件通讯,意在不同的指令和组件之间共享信息.如何在两个多个组件之间共享信息呢. 最近在项目上,组件跟组件之间可能是父子关系,兄弟关系,爷孙关系都有.....我也找找了很多关于组件之间通讯的方法,不同的 ...
 - Angular10 组件之间的通讯
		
1 父组件和子组件之间的通讯 2 利用中间组件实现两个组件之间的通讯 3 利用服务实现两个组件之间的通讯 2017年8月26日20:09:13 待更新... 1 组件之间的关系图 1.1 父子关系 1 ...
 - 【译】在 ASP.NET 和 ASP.NET Core 之间共享代码
		
原文 | Ken 翻译 | 郑子铭 随着 .NET 6 的发布,使用 ASP.NET Core 可以获得更多好处.但是将现有代码迁移到 ASP.NET Core 通常听起来像是一项巨大的投资.今天我们 ...
 
随机推荐
- python(59):yield 函数
			
可迭代对象: 当你建立了一个列表,你可以逐项地读取这个列表,这叫做一个可迭代对象: >>> mylist = [1, 2, 3] >>> for i in myli ...
 - 【MyBean-开源框架】进行简单的逻辑插件(演示在控制台中应用)
			
[说明] 很多时候大家认为客户端插件一般是窗体.其实不然,很多功能都可以看成是插件,比如一个单据的审批功能,一个单据上面,单价的获取功能,都可以看成是插件,然后后期通过配置,可以灵活进行切换.MyBe ...
 - frame自适应
			
<html> <head> <title>frame自适应</title> </head> <frameset rows=" ...
 - Docker 入门 --- 命令总结
			
Docker命令总结 前言 命令来自于官网的get-started教程,放在这里自用 part-1 ## List Docker CLI commands docker docker containe ...
 - 使用BC库解密出现no such provider错误
			
使用BC库解密出现no such provider错误 错误提示如下: Exception in thread "main" java.security.NoSuchProvide ...
 - Chrome中使用flash引起cpu飙升问题的处理
			
本人使用的是Chrome 30 flash 18,在看视频或者登陆有调用flash插件的页面之后,经常会遇到Shockwave Flash插件CPU占用超过50%的情况(在Chrome的任务管理器可以 ...
 - GreenDAO - primary key on multiple columns
			
转:http://stackoverflow.com/questions/15250609/greendao-primary-key-on-multiple-columns Does GreenDAO ...
 - MySQL升级后1728错误解决方案
			
MySQL升级后1728错误解决方案 错误 # 1728,Cannot load from mysql.proc. The table is probably corrupted 造成原因:MySQL ...
 - loadrunner和QTP视频教程汇总
			
小布老师视频: 测试工具概述,兼LoadRunner介绍 -1-4 http://www.boobooke.com/v/bbk1046 http://www.boobooke.com/v/bbk104 ...
 - splitter 使用
			
splitter1.Width = ; splitter1.Height = ; Label l = new Label(); l.Text = "···"; //写入的字,具体指 ...