华丽的痘痘
努力成为一个有价值的程序员
登录
注册
全站
当前博客
空间
博客
好友
相册
论坛
留言
用户操作
[即时聊天]
[发私信]
[加为好友]
华丽的痘痘
ID:andycpp
共
49212
次访问,排名
2315
,好友
17
人,关注者
66
人。
做一名合格地java教师
andycpp的文章
原创 45 篇
翻译 1 篇
转载 16 篇
评论 20 篇
最近评论
zhangcy_54:
太好了,非常感谢老师!!!
q_onelover:
刚学习java,想了解最基本的东西,望多多指教,
fengzijing:
没有想到sql的查询还有这么多的查询方法,谢了有知道了一些自己不知到的方法
bxyz1203:
hao....
flyever581549:
不错。
文章分类
JAVA技术
(RSS)
常见算法
(RSS)
代码收藏
(RSS)
随笔
(RSS)
收藏
经典文章
相册
我的相册
高手专栏
Web高手buaawhl的专栏
(RSS)
阿朱的博客
(RSS)
存档
2008年10月(1)
2008年09月(5)
2008年08月(3)
2007年09月(3)
2007年08月(7)
2007年07月(11)
2007年06月(5)
2007年02月(1)
2006年10月(7)
2006年09月(5)
2006年08月(1)
2006年06月(1)
2006年04月(2)
2006年03月(3)
2006年02月(3)
软件项目交易
订阅我的博客
给一个窗体增加快捷键
收藏
新一篇: 婚前婚后经典对白
|
旧一篇: 常见Swing事件处理方法
我们在使用一个应用程序的时候,如果熟练运用一些快捷键的话,会大大增加效率,那么使用Swing编程该如何添加快捷键呢?下面就让我们来实现他。
首先来看一下可能遇到哪些问题。一般来讲,快捷键一定是要被绑定到某一个组件上面的,并且在这个组件拥有焦点的时候快捷键才有效。这就遇到问题了,并没有哪一个组件能够长期拥有焦点,焦点是经常变化的,难道快捷键也会随着组件失去焦点而失效吗?Swing的设计者考虑到了这个问题,他们放宽了快捷键有效的范围:本组件拥有焦点,快捷键有效;本组件内部包含的其他组件拥有焦点,快捷键有效;与本组件处于并列关系的其他组件(即几个组件位于同一个容器中)拥有焦点,快捷键有效。
但是,Swing并没有把快捷键和实际的动作直接映射起来,他采用的是间接映射的方式:把KeyStroke和某个Key映射一下(称之为InputMap),再把Key和某个Action映射一下(称之为ActionMap),从而实现KeyStroke与Action的间接映射。这样,对于任何一个组件都维护者4个映射表:三个InputMap分别对应这3个有效范围,外加1个ActionMap。
因此,我们给系统添加快捷键的一般步骤是:选择一个合适范围的InputMap,添加(Key-KeyStroke)映射;再在ActionMap中添加(Key-Action)映射。
代码如下:
public
class
ButtonClickPanel
extends
JPanel
...
{
public
ButtonClickPanel()
...
{
add(
new
JButton(
"
Red
"
));
//
选择范围为WHEN_ANCESTOR_OF_FOCUSED_COMPONENT的InputMap映射
InputMap im1
=
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
im1.put(KeyStroke.getKeyStroke(
"
F2
"
),
"
change to red
"
);
//
添加ActionMap映射
ActionMap am1
=
getActionMap();
am1.put(
"
change to red
"
,
new
MyAction(Color.RED));
}
class
MyAction
extends
AbstractAction
...
{
public
MyAction(Color c)
...
{;
co
=
c;
}
@Override
public
void
actionPerformed(ActionEvent e)
...
{
//
TODO Auto-generated method stub
setBackground(co);
}
private
Color co;
}
}
这样就将F2定义为使背景色变红的快捷键。
发表于 @
2007年07月02日 00:09:00
|
评论(
loading...
)
|
编辑
新一篇: 婚前婚后经典对白
|
旧一篇: 常见Swing事件处理方法
评论:没有评论。
发表评论
姓 名:
主 页:
校验码:
看不清,换一张
当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击
登录