swt 的 菜单
来源:互联网 发布:网络安全技术论文 编辑:程序博客网 时间:2024/05/19 09:16
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
//1. Create a bar menu
Menu barMenu = new Menu(shell, SWT.BAR);
//2. Set the bar menu as the main menu for the shell by calling setMenuBar(menu).
shell.setBarMenu(barMenu);
//3. 为 menu 添加按钮项目 0$1 是第0级第0个按钮 SWT.CASCADE 可以增加自按钮
// 这里MenuItem 的构造函数中的 menu 决定 menuItem挂在哪一个菜单下
// LiIk 是第i级第k个按钮,level/index
MenuItem itemL0I0 = new MenuItem(barMenu, SWT.CASCADE);
itemL0I0.setText("itemL0I0");
MenuItem itemL0I1 = new MenuItem(barMenu, SWT.DOWN);
itemL0I1.setText("itemL0I1");
//4. Create each dropdown menu by calling either new Menu(shell, SWT.DROP_DOWN) or new Menu(barMenu).
// 创建按钮项目的按钮菜单,当然可以写成 menuL0I0 = new Menu(shell, SWT.DROP_DOWN)、
// menuL0I0 = new Menu(barMenu),和下面的 menuL0I0 = new Menu(itemL0I1);
// 这里的 shell、barMenu、itemL0I1 只是为了让swt级联dispose时能够dispose menuL0I0// 如果写成new Menu(shell, SWT.DROP_DOWN | SWT.NO_RADIO_GROUP),那么该menu中的radio就不再单选了Menu menuL0I0 = new Menu(itemL0I1); //
//5. Set each dropdown into the appropriate bar menu item by calling MenuItem.setMenu(dropdownMenu).
// 关联itemL0I0的菜单为menuL0I0,第 4 步并不是在进行关联
itemL0I0.setMenu(menuL0I0);
//6. 重复 3 - 5,创建 menuL0I0 的子菜单
MenuItem itemL0I0_L1I0 = new MenuItem(menuL0I0, SWT.DOWN);
itemL0I0_L1I0.setText("itemL0I0_L1I0");
MenuItem itemL0I0_L1I1 = new MenuItem(menuL0I0, SWT.CASCADE);
itemL0I0_L1I1.setText("itemL0I0_L1I1");
Menu menuL0I0_L1I1 = new Menu(itemL0I0_L1I1);
itemL0I0_L1I1.setMenu(menuL0I0_L1I1);
/* 又一次重复步骤3 */
MenuItem itemL0I0_L1I1_L2I0 = new MenuItem(menuL0I0_L1I1, SWT.DOWN);
itemL0I0_L1I1_L2I0.setText("itemL0I0_L1I1_L2I0");
MenuItem itemL0I0_L1I1_L2I1 = new MenuItem(menuL0I0_L1I1, SWT.DOWN);
itemL0I0_L1I1_L2I1.setText("itemL0I0_L1I1_L2I1");
MenuItem itemL0I0_L1I1_L2I2 = new MenuItem(menuL0I0_L1I1, SWT.DOWN);
itemL0I0_L1I1_L2I2.setText("itemL0I0_L1I1_L2I2");
new MenuItem(menuL0I0_L1I1, SWT.SEPARATOR); MenuItem itemL0I0_L1I1_L2I4 = new MenuItem(menuL0I0_L1I1, SWT.RADIO);
itemL0I0_L1I1_L2I4.setText("itemL0I0_L1I1_L2I4");
MenuItem itemL0I0_L1I1_L2I5 = new MenuItem(menuL0I0_L1I1, SWT.RADIO);
itemL0I0_L1I1_L2I5.setText("itemL0I0_L1I1_L2I5");
itemL0I0_L1I1_L2I5.setSelection(true);
new MenuItem(menuL0I0_L1I1, SWT.SEPARATOR);
MenuItem itemL0I0_L1I1_L2I6 = new MenuItem(menuL0I0_L1I1, SWT.RADIO);
itemL0I0_L1I1_L2I6.setText("itemL0I0_L1I1_L2I6");
// itemL0I0_L1I1_L2I5 和 itemL0I0_L1I1_L2I6 与
// itemL0I0_L1I1_L2I7 和 itemL0I0_L1I1_L2I8 不是一个group的,可以同时选择itemL0I0_L1I1_L2I6.setSelection(true);
MenuItem itemL0I0_L1I1_L2I7 = new MenuItem(menuL0I0_L1I1, SWT.RADIO);
itemL0I0_L1I1_L2I7.setText("itemL0I0_L1I1_L2I7");
shell.pack();
shell.open();
while(!shell.isDisposed() ) {
if(!display.readAndDispatch() ) {
display.sleep();
}
}
display.close();
这里显示的按钮栏,如果要改写为弹出菜单的话,只需要不设置为 SWT.BAR 即可,
把 1 修改为:
Label label = new Label(shell, SWT.CENTER);
label.setText("label");
Menu barMenu = new Menu(label);
把2修改为:
label.setMenu(barMenu);
这也在 label 上右键的时候就有弹出菜单了
- swt 的 菜单
- SWT工具栏菜单的实现
- IBM SWT 菜单
- SWT 右键菜单
- SWT制作下拉式toolbar菜单按钮的代码片段
- SWT树节点上弹出菜单的实现
- 自定义SWT日历控件及其下拉菜单组件的实现
- SWT的CheckBoxTreeView的上级菜单与下级菜单的选中的实现
- SWT 下菜单与子菜单添加的实现(详细图解)
- SWT实现右键菜单功能
- swt树形菜单tree使用
- 一个Java的SWT菜单显示和递归调用的简单实例
- swt tray demo:右键菜单,单击隐藏,所有事件的例子
- SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
- SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
- SWT/JFace菜单和工具栏,对话框,拖放
- SWT如何给Table添加右键菜单
- SWT读取本地文件加到树菜单上
- 开篇
- Richedit右键菜单
- 退出猫扑
- 实现排序,INotifyPropertyChanged,filter的BindingListView
- 划分任意子窗口
- swt 的 菜单
- 伟大的抽象/具体二分法
- 用MYSQLDUMP备份生成的文件还原到另外的电脑后数据写入失败
- windws下mysql客户端登陆服务器选用字符集的不同造成的语句执行效果不正确
- del_ok.php源代码分析
- 豆瓣里可以很好的交流书籍。
- search.py源代码分析:用到了google算法
- Autodesk AutoCAD 专业插件制作 定制化开发
- [Serializable]在C#中的作用-NET 中的对象序列化