- 浏览: 243539 次
- 性别:
- 来自: 济南
-
文章分类
最新评论
-
heartneo:
破解原作真是太厉害了。
Spket 1.6.18的简单破解 -
mwp1115:
谢谢,现在官方的demo代码还是jdk1.2的
Swing JTreeTable范例 -
bulktree:
Spket 谢谢了,js格式化 行宽太小了,你这个帮了我很大的 ...
Spket 1.6.18的简单破解 -
REGAL2T:
谢谢, 可以使用了
Spket 1.6.18的简单破解 -
wuwei1616:
我想问下lz 我生成了 wsdl文件 我用客户端去调用 怎么总 ...
调用CXF工具 生成 WSDL
今天用到Menu,本以为小菜一碟,都是老掉牙的东东了还不简单。逮着键盘狂敲,直到运行的时候,却发现和想象有点出入,bugging。。。
虽然很快就解决了问题,但是自己咬到自己舌头的滋味不好受,索性简单复习一下功课。前人言,好记性不如烂笔头。
package menu; import org.eclipse.swt.SWT; import org.eclipse.swt.events.HelpEvent; import org.eclipse.swt.events.HelpListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class MenuExample1 { Display display; Shell shell; Menu menuBar, fileMenu, secondMenu_Radio, secondMenu_Check, helpMenu; MenuItem fileMenuHeader, helpMenuHeader; MenuItem filePushItem, fileSeperatorItem, exitItem, helpItem, secondMenu_RadioItem, radioItem1, radioItem2, secondMenu_CheckItem, checkItem1, checkItem2; Text text; public MenuExample1() { display = new Display(); shell = new Shell(display); shell.setText("Menu Example"); shell.setSize(300, 200); text = new Text(shell, SWT.BORDER); text.setBounds(80, 50, 150, 50); // 在shell的顶部创建菜单区域,菜单栏的样式必须为SWT.BAR。 // 可用的样式包括:BAR, DROP_DOWN, POP_UP, NO_RADIO_GROUP,LEFT_TO_RIGHT, // RIGHT_TO_LEFT menuBar = new Menu(shell, SWT.BAR); { // 创建File菜单 fileMenuHeader = new MenuItem(menuBar, SWT.CASCADE);// 确保样式是SWT.CASCADE,即级联菜单,这样才会弹出下拉菜单。 fileMenuHeader.setText("&File"); // 追加菜单 fileMenu = new Menu(shell, SWT.DROP_DOWN); fileMenuHeader.setMenu(fileMenu); filePushItem = new MenuItem(fileMenu, SWT.PUSH); filePushItem.setText("&PushMenuItem"); // 分割栏 fileSeperatorItem = new MenuItem(fileMenu, SWT.SEPARATOR); // 子菜单 secondMenu_RadioItem = new MenuItem(fileMenu, SWT.CASCADE); secondMenu_RadioItem.setText("RadioMenu"); secondMenu_Radio = new Menu(shell, SWT.DROP_DOWN); secondMenu_RadioItem.setMenu(secondMenu_Radio); radioItem1 = new MenuItem(secondMenu_Radio, SWT.RADIO); radioItem1.setText("Radio1"); radioItem2 = new MenuItem(secondMenu_Radio, SWT.RADIO); radioItem2.setText("Radio3"); secondMenu_CheckItem = new MenuItem(fileMenu, SWT.CASCADE); secondMenu_CheckItem.setText("Check"); secondMenu_Check = new Menu(shell, SWT.DROP_DOWN); secondMenu_CheckItem.setMenu(secondMenu_Check); checkItem1 = new MenuItem(secondMenu_Check, SWT.CHECK); checkItem1.setText("Check1"); checkItem2 = new MenuItem(secondMenu_Check, SWT.CHECK); checkItem2.setText("Check2"); // checkItem1.setImage(image) } { // 然后通过setAccelerator来设置快捷键,为CTRL+x, // 此时用户可以不需要打开菜单就可以执行该操作 helpMenuHeader = new MenuItem(menuBar, SWT.CASCADE); helpMenuHeader.setText("&Help"); helpMenu = new Menu(shell, SWT.DROP_DOWN); helpMenuHeader.setMenu(helpMenu); exitItem = new MenuItem(helpMenu, SWT.PUSH); exitItem.setText("E&xit\tCtrl+X"); exitItem.setAccelerator(SWT.CTRL + 'X'); helpItem = new MenuItem(helpMenu, SWT.PUSH); helpItem.setText("Help\tF1"); } // 事件处理 { // pushItem filePushItem.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { text.setText(((MenuItem) event.widget).getText() + "Action performed!"); } }); // radio radioItem1.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { text.setText("Radio item toggled to:" + radioItem1.getSelection()); } }); // check checkItem1.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { text.setText("Check item toggled to:" + checkItem1.getSelection()); } }); // exit exitItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { shell.close(); } }); // 帮助监听器HelpListener,通过按下F1/Help键,HelpListener被触发 helpItem.addHelpListener(new HelpListener() { public void helpRequested(HelpEvent e) { text.setText("Help requested on SubAction"); } }); } shell.setMenuBar(menuBar); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } public static void main(String[] args) { MenuExample1 menuExample = new MenuExample1(); } }
如果想变成右键快捷菜单,那就更简单了:将上面的代码稍加处理就可以了。如下:
menuBar = new Menu(shell, SWT.BAR);》》》》》》》》》menuBar = new Menu(shell, SWT.POP_UP);
shell.setMenuBar(menuBar);》》》》》》》》》shell.setMenu(menuBar);
ok,over。
发表评论
-
目录树的生成
2011-09-22 08:54 1427项目上线需要生成个目录树文件,本来可以用dos的tree就搞定 ... -
Eclipse Tip: Define Custom Content Types to Identify Your Data Files
2010-06-13 08:53 1231【转自】http://www.developer.com/ja ... -
WTP Facet 之 AddFilter
2010-06-11 14:22 1274做插件开发的人员都知道,如果你不晓得该使用那个Eclipse提 ... -
Properties文件的读写 : Properties操作示例
2010-04-21 14:19 1575package properties; import j ... -
wizardPage参考
2010-04-15 13:23 2536插件向导开发最好的例子莫过于Eclipse中本身一些向导,但如 ... -
如何访问当前Project???
2010-04-14 08:27 1142【转】http://wiki.eclipse.org/FAQ_ ... -
How to create dynamic web project using facets
2010-03-22 08:51 1500To create a blank faceted proje ... -
Introduction to the XSD Editor(XML Schema Editor)
2010-03-13 16:46 1380By Trung Ha August 30, 2006 ... -
同类编辑器只能打开一个
2010-02-23 13:28 1329在(http://sxw7362693.iteye.com/b ... -
通过事件驱动,创建不同的部件
2010-02-20 15:43 1114非常easy的东西,就是先dispose再create。 ... -
Tree Check 带复选框的树
2009-08-25 13:23 7738在SWT/JFace中,带复选框树最好使用Contain ... -
Swing JTreeTable范例
2009-08-21 13:48 3089由于工作需要,看了一点Swing的JtreeTable的实现。 ... -
SWT/JFACE——toolbar/toolItem
2009-04-23 22:47 10870工具栏通常有两种: toolbar、coolBar。两者的区 ... -
Eclipse.ini参数意义
2009-04-16 17:34 834eclipse.ini内存设置各参数含义 ... -
Editor的脏处理
2009-03-11 21:05 1728做编辑器Editor插件,肯定离不开对“脏”的处理。以前虽然也 ... -
SWT-Table按“行“进行编辑
2009-03-11 10:24 4736package table; /* * 通常在一个表 ... -
读取properties文件
2008-11-27 10:26 1849在 武晨伟的博客 http://blog.csdn.n ... -
移除Builders
2008-08-15 09:36 927public static void removeBuild ... -
Java项目classPath的添加
2008-08-15 09:28 3659// import org.eclipse.jem.workb ... -
tree file options
2008-08-15 08:47 1183package jface.treeviewer; impo ...
相关推荐
### SWT桌面程序开发实例图解教程 #### 一、SWT简介 SWT(Simple Widget Toolkit)是一款由Eclipse项目提供的跨平台GUI编程工具包,主要用于构建Java应用...希望这篇教程能帮助读者更好地掌握SWT桌面程序的开发技巧。
本篇文章将深入探讨如何利用JFace和SWT技术来构建一个学生成绩管理程序,并分析其中的关键知识点。 首先,JFace是Eclipse项目的一部分,它建立在SWT之上,提供了更高级别的抽象和面向对象的API,简化了GUI的开发。...
这篇博客文章“SWT应用的开发实例:没有使用到OSGi”可能是介绍如何在不依赖OSGi框架的情况下,使用SWT进行应用程序开发的具体步骤和实践案例。 OSGi(Open Service Gateway Initiative)是一种模块化系统,主要...
第2篇 SWT进阶篇 第4章 SWT开发基础 40 4.1 SWT应用程序基本结构 40 4.2 Display类 42 4.2.1 Display类概述 42 4.2.2 Display类常用方法 42 4.3 Shell类 45 4.3.1 Shell类概述 45 4.3.2 不同窗口的...
在IT行业中,RCP(Rich Client Platform)是Eclipse框架的一部分,它提供了一种构建桌面应用程序...如果要深入学习RCP开发,还需要掌握Eclipse插件开发、SWT/JFace UI组件、模型-视图-控制器(MVC)设计模式等相关知识。