首页
|
互联网
|
IT动态
|
IT培训
|
Cisco
|
Windows
|
Linux
|
Java
|
.Net
|
Oracle
|
软件测试
|
C/C++
|
嵌入式开发
|
存储世界
|
服务器
网络设备
|
IDC
|
安全
|
求职招聘
|
数字网校
|
网页设计
|
平面设计
|
技术专题
|
电子书下载
|
教学视频
|
源码下载
|
搜索
|
博客
|
论坛
输入您的搜索字词
提交搜索表单
首页
资讯动态
认证考试
新手入门
核心技术
高级技术
J2EE
J2ME
Java&XML
开源技术
其他技术
RSS订阅
论坛
专题
您现在的位置:
中国IT实验室
>>
Java
>>
新手入门
>>
基础入门
>> 正文
理解Java Swing中的Accelerator Key
ChinaItLab
佚名
2007-6-20
保存本文
推荐给好友
收藏本页
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
前言:没事在看《
Java
Swing, 2nd Edition》,看到有个东西还是蛮有趣的说,就是Accelerator key,呵呵,好像要配合Alt一起用才能起到作用。蛮多东西是看了程序后才发现原文的意思的。这次算是插曲,不在MapsEditor的范围之内。顺便提一下,中午起来有3到4个人加了群,蛮开心的。高手也好初学也罢,大家重要的是交流,大胆说出自己的想法,错了就错了,谁没错过啊……
关于Accelerator key,在做GUI的时候还是比较重要的吧,至少以前认为那些不用鼠标的人蛮高手的,呵呵,自己也会去刻意记些常用的快捷键,在
Windows
下用用还算凑合那,呵呵。程序是从书上搬下来的,觉得蛮有意思的,大家可以看看。
// MnemonicLabels.java
//
import javax.swing.*;
import java.awt.*;
// Shows how displayedMnemonic and labelFor properties work together
public class MnemonicLabels ...{
public static void main(String[] args) ...{
JTextField firstField = new JTextField(10);
JTextField middleField = new JTextField(10);
JTextField lastField = new JTextField(10);
// Create labels and mnemonics.
JLabel firstLabel = new JLabel("First Name", JLabel.RIGHT);
firstLabel.setDisplayedMnemonic('F');
firstLabel.setLabelFor(firstField);
JLabel middleLabel = new JLabel("Middle Initial", JLabel.RIGHT);
middleLabel.setDisplayedMnemonic('I');
middleLabel.setDisplayedMnemonicIndex(7); // Requires 1.4
middleLabel.setLabelFor(middleField);
JLabel lastLabel = new JLabel("Last Name", JLabel.RIGHT);
lastLabel.setDisplayedMnemonic('L');
lastLabel.setLabelFor(lastField);
// Layout and display
JPanel p = new JPanel( );
p.setLayout(new GridLayout(3, 2, 5, 5));
p.add(firstLabel);
p.add(firstField);
p.add(middleLabel);
p.add(middleField);
p.add(lastLabel);
p.add(lastField);
JFrame f = new JFrame("MnemonicLabels");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(p);
f.pack( );
f.setVisible(true);
}
}
有
Java
环境的可以拷贝去然后编译运行看看,然后分别按Alt+F、Alt+I、Alt+L,Foucs就会在三个TextField之间转换。关键的是firstLabel.setDisplayedMnemonic('F')和firstLabel.setLabelFor(firstField),前一个setDisplayedMnemonic(char)选定哪个character为快捷键,就像VC里面的“&”一样的功能,而后面这个setLabelFor(comp)则表明你按下相应的快捷键(加速键)后焦点定位到哪个控件上(当然要有焦点的控件)。需要注意的是第二个快捷键的设置“middleLabel.setDisplayedMnemonicIndex(7);”这个需要SDK1.4的支持,这个的作用就是设置显示的下划线为第几个字符。很明显,我们注意到对于“I”来说,“Middle Initial”中前后有两个“I”,而这里是部分大小写的,所以按照第一个或者第三个的做法的话,程序会默认JLabel中文字满足的第一个字符加下划线,也就是这个样子了“Middle Initial”,我们要的是“Middle Initial”的效果,所以把下划线设置到第七个字符“I”上面。其他也没什么好玩的了,除了这个应该都能摸索懂吧,呵呵。
【责编:Peng】
相关文章
Java软件开发中可能出现几个错误观点
详解Java中如何获得特殊字符
关于java递归调用内存泄漏
Swing之JTable运用线程一个测试
Swing通用数据验证模块
全面掌握Java的异常处理机制
认识Java虚拟机及其性能
JAVA安全基础简介
Java字符串 日期 数字格式化输出
Java运算符和流程
编辑推荐
· [
开发工具
]
脚本编程语言--JavaFX应用问题解答
· [
Hibernate
]
开源框架Hibernate3的新特性以及发展趋势
· [
oop面向对象
]
使用重构移除丑陋的if else代码
· [
Spring
]
基于Spring框架的WebSphere应用开发
· [
Eclipse
]
Jazz能否复制Eclipse的成功
· [
EJB
]
一步一步学EJB 3.0(二):初探企业EJB模块开发
· [
Struts
]
struts简单案例-适合初学者(一)
· [
高级编程
]
防止java反编译的一些常用方法
· [
安装配置
]
在 Tomcat 上配置虚拟主机
· [
高级编程
]
jacob中的QueryInterface()方法
相关产品和培训
文章评论
友情推荐链接
·
Asp源码
PHP源码
·
CGI源码
JSP源码
·
建站书籍教程
·
服务器软件
.net源码
·
建站工具软件
·
IDC资讯大全
·
机房品质万里行
·
IDC托管必备知识
·
网站推广优化
·
全国IDC报价
认证培训
专题推荐
·
关于Java框架技术专题
·
XML全攻略技术专题
·
JAVA开源技术介绍专题
·
Java嵌入式开发之J2ME技术专题
·
超前体验 Oracle 11g的5个新特性…
·
揭密使用VB.NET的五个实用技巧
·
Oracle和SQL Server常用函数对比专题…
·
展现C#世界 C#程序设计专题…
·
Java入门 Tomcat的配置技巧精华专题…
·
Oracle RMAN物理备份技术详解…
今日更新
·
J2ME手机游戏:Canvas类基本绘图实例
·
J2ME手机游戏:Canvas类基本绘图应用
·
J2ME手机游戏:TimerTask与Timer类的应用
·
J2ME手机游戏:运行实现Runnable接口的类
·
J2ME手机游戏设计:Thread类
·
J2EE综合:Struts上传多个文件的例子
·
推荐:Blogjava备份数据的阅读器
·
SpringSide 3.0.1接踵而来
·
对J2EE应用系统分层设计的思考
·
利用WebSphere创建和管理ESB解决方案
社区讨论
博客论点
频道精选
·
新版CCNA考试大纲 07年8月1日生效
·
新手学习宝典:Linux常用命令全集
·
知已知彼,深入了解系统安全知识
·
从入门到精通 java初学者实践系列教程
·
共同学习——Oracle入门基础专题
·
ADO.net与PowerBuilder的综合比较
·
评论:中国互联网“钱”途何在?
·
中科院:龙芯要成"中国奔腾" 能卖1亿颗
Java 频道导航
新手入门
:
安装配置
|
开发工具
|
JDK
|
oop面向对象
核心技术
:
SwingAwtApplet
|
高级编程
|
网络编程
Jvm技术
|
JavaMedia
高级技术
:
设计模式
|
UML/OO
|
p2p/Jxta
|
多线程
|
JavaSecurity
J2EE
:
J2ee核心
|
Servlet/Jsp
|
EJB
|
JDBC/JDO
|
Rmi/Corba/Jini
|
Mvcwea
|
应用服务器
J2ME
:
核心技术
|
嵌入式
|
无线开发
Java&XML
:
XMLBeans
|
WebServices
开源技术
:
ANT
|
Struts
|
Hibernate
|
Spring
Eclipse
|
JBoss
|
Tomcat
|
JUnit
其他技术