第三次博客

#任选一个Swing组件(不能是IButton,Jlabel)
##介绍这个Swing组件的使用;当这个Swing组件作为事件源时,用户可以怎样和这个组件进行交互;编写返利代码说明并且使用文字进行说明。
###菜单
####(1)菜单也是一种常用的GUI组件,菜单采用的是一种层次结构,最顶层是菜单栏(JMenuBar);在菜单栏中可以添加若干个菜单(JMenu),每个菜单中又可以添加若干个菜单选项(JMenuItem)、分隔线(Separator)或是菜单(称之为子菜单)。
####(2)构建应用程序的菜单时,先创建一个菜单栏:

 JMemuBar menuBar=new JMenuBar();

####通常使用框架的setJMenuBar(JMenuBar aMenuBar)方法将菜单栏置于框架中:

 frame.setJMenuBar(menuBar);

####随后,创建所需要的各菜单并逐个添加到菜单栏中,例如:

JMenu menuDBAccount=new JMenu("电表出帐(C)");
...
JMenu menuSysConfig=new JMenu("系统设置(X)");
menuBar.add(menuDBAccount);
...
menuBar.add(menuSysConfig);

####最后,向各个菜单中添加菜单选项、分隔线或是子菜单,如图所示的系统设置菜单为例:

//创建菜单选项或是子菜单
JMenuItem sysConfigItem=new JMenuItem("参数设置(S)...");
JMenu viewMenu=new JMenu("外观设置");
JRadioButtonMenuItem metalItem=new JRadioButtonMenuItem("金属外观");
JRadioButtonMenuItem classicItem=new JRadioButtonMenuItem("传统外观");
JRadioButtonMenuItem modernItem=new JRadioButtonMenuItem("现代外观");
JMenuItem cascadeItem=new JMenuItem("层叠窗口(C)");
JMenuItem iconifyItem=new JMenuItem("排列图标(I)");
//将三个单选按钮添加到一个按钮组
ButtonGroup group=new ButtonGroup();
group.add(metalItem);
group.add(classicItem);
group.add(modernItem);
//构建子菜单
viewMenu.add(metalItem);
viewMenu.add(classicItem);
viewMenu.add(modernItem);
//添加到系统设置菜单
menuSysConfig.add(sysConfigItem); //添加菜单选项
menuSysConfig.add(viewMenu); //添加子菜单
menuSysConfig.add(cascadeItem); //添加菜单选项
menuSysConfig.addSeaparator(); //添加分隔线
menuSysConfig.add(iconifyItem); //添加菜单选项

####(3)通常的菜单选项是JMenuItem,也可以使用复选框或是单选按钮类型的菜单选项,分别是JCheckBoxMenuItem和JRadioButtonMenuItem。和JRadioButton一样,使用JRadioButtonMenuItem时,需要将它们添加到同一个按钮组中。
####(4)当点击一个菜单选项时,会生成一个动作事件(ActionEvent) 。为菜单选项添加事件侦听器就可以侦听其动作事件,例如:sysConfigItem.addActionListener(aListener);
####(5)为一个菜单或是菜单选项设置快捷键:

menuSysConfig.setMnemonic('X');
sysConfigItem.setMnemonic('S');

####(6)如果需要快速选择未打开的菜单中的菜单选项或是子菜单,可以使用加速键。例如,当希望按下CTRL+L时就立刻选中lockItem菜单选项,而不管lockItem所在的菜单是否已经打开,就可以使用下面的方法为lockItem设置加速键:

KeyStroke ks= KeyStroke.getKeyStroke( KeyEvent.VK_L,InputEvent.CTRL_MASK);
lockItem.setAccelerator(ks);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值