前言:没事在看《Java Swing
nd Edition》
看到有个东西还是蛮有趣的说
就是Accelerator key
呵呵
好像要配合Alt一起用才能起到作用
蛮多东西是看了程序后才发现原文的意思的
这次算是插曲
不在MapsEditor的范围之内
顺便提一下
中午起来有
到
个人加了群
蛮开心的
高手也好初学也罢
大家重要的是交流
大胆说出自己的想法
错了就错了
谁没错过啊……
关于Accelerator key在做GUI的时候还是比较重要的吧至少以前认为那些不用鼠标的人蛮高手的呵呵自己也会去刻意记些常用的快捷键在Windows下用用还算凑合那呵呵程序是从书上搬下来的觉得蛮有意思的大家可以看看
// MnemonicLabelsjava
//
import javaxswing*;
import javaawt*;
// Shows how displayedMnemonic and labelFor properties work together
public class MnemonicLabels {
public static void main(String[] args) {
JTextField firstField = new JTextField();
JTextField middleField = new JTextField();
JTextField lastField = new JTextField();
// Create labels and mnemonics
JLabel firstLabel = new JLabel(First Name JLabelRIGHT);
firstLabelsetDisplayedMnemonic(F);
firstLabelsetLabelFor(firstField);
JLabel middleLabel = new JLabel(Middle Initial JLabelRIGHT);
middleLabelsetDisplayedMnemonic(I);
middleLabelsetDisplayedMnemonicIndex(); // Requires
middleLabelsetLabelFor(middleField);
JLabel lastLabel = new JLabel(Last Name JLabelRIGHT);
lastLabelsetDisplayedMnemonic(L);
lastLabelsetLabelFor(lastField);
// Layout and display
JPanel p = new JPanel( );
psetLayout(new GridLayout( ));
padd(firstLabel);
padd(firstField);
padd(middleLabel);
padd(middleField);
padd(lastLabel);
padd(lastField);
JFrame f = new JFrame(MnemonicLabels);
fsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
fsetContentPane(p);
fpack( );
fsetVisible(true);
}
}
有Java环境的可以拷贝去然后编译运行看看然后分别按Alt+FAlt+IAlt+LFoucs就会在三个TextField之间转换关键的是firstLabelsetDisplayedMnemonic(F)和firstLabelsetLabelFor(firstField)前一个setDisplayedMnemonic(char)选定哪个character为快捷键就像VC里面的&一样的功能而后面这个setLabelFor(comp)则表明你按下相应的快捷键(加速键)后焦点定位到哪个控件上(当然要有焦点的控件)需要注意的是第二个快捷键的设置middleLabelsetDisplayedMnemonicIndex();这个需要SDK的支持这个的作用就是设置显示的下划线为第几个字符很明显我们注意到对于I来说Middle Initial中前后有两个I而这里是部分大小写的所以按照第一个或者第三个的做法的话程序会默认JLabel中文字满足的第一个字符加下划线也就是这个样子了Middle Initial我们要的是Middle Initial的效果所以把下划线设置到第七个字符I上面其他也没什么好玩的了除了这个应该都能摸索懂吧呵呵