下载本文示例代码
前言:没事在看《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 togetherpublic 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”上面。其他也没什么好玩的了,除了这个应该都能摸索懂吧,呵呵。
前言:没事在看《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 togetherpublic 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”上面。其他也没什么好玩的了,除了这个应该都能摸索懂吧,呵呵。
下载本文示例代码
理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key理解Java Swing中的Accelerator Key
阅读(1094) | 评论(0) | 转发(0) |