|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。上篇博客先容了怎样使用Eclipse供应的Action完成菜单开辟,这篇先容一下自界说菜单的功效。
创建工程的步骤就不再赘述了,后面的步骤能够看一下之前的博客。
要想创立自界说菜单的功效,必要做几个操纵,包含创立自界说Action,完成Action中的run办法,以后makeActions办法中注册自界说Action,在fillMenuBar办法中增加菜单。
先来创建Action,Action要承继Action,和完成IWorkbenchAction,最次要是完成run办法,run办法的感化是完成菜单的功效。
详细代码为:
- importorg.eclipse.jface.action.Action;
- importorg.eclipse.ui.IWorkbenchWindow;
- importorg.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
- publicclassAboutActionextendsActionimplementsIWorkbenchAction{
- privateIWorkbenchWindowworkbenchWindow;
- publicAboutAction(IWorkbenchWindowwindow){
- if(window==null){
- thrownewIllegalArgumentException();
- }
- this.workbenchWindow=window;
- }
- publicvoidrun(){
- if(workbenchWindow!=null){
- AboutDialogad=newAboutDialog(workbenchWindow.getShell());
- ad.open();
- }
- }
- @Override
- publicvoiddispose(){
- }
- }
在下面的run办法中我用到了一个AboutDialog,这个类是一个窗体类,详细完成为:
- importorg.eclipse.swt.SWT;
- importorg.eclipse.swt.widgets.Dialog;
- importorg.eclipse.swt.widgets.Display;
- importorg.eclipse.swt.widgets.Label;
- importorg.eclipse.swt.widgets.Shell;
- publicclassAboutDialogextendsDialog{
- protectedShellshell;
- privateintresult;
- publicAboutDialog(Shellparent){
- this(parent,SWT.NONE);
- }
- publicAboutDialog(Shellparent,intstyle){
- super(parent,style);
- }
- publicintopen(){
- createContents();
- shell.open();
- shell.layout();
- Displaydisplay=getParent().getDisplay();
- while(!shell.isDisposed()){
- if(!display.readAndDispatch())
- display.sleep();
- }
- returnresult;
- }
- protectedvoidcreateContents(){
- shell=newShell(getParent(),SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);
- shell.setSize(400,150);
- shell.setText("关于");
- Labellabel2=newLabel(shell,SWT.NONE);
- label2.setText("自界说菜单");
- label2.setBounds(70,50,300,20);
- }
- }
上面就是和后面博客解说的那样注册Action和完成FillMenuBar。
- publicclassApplicationActionBarAdvisorextendsActionBarAdvisor{
- privateIWorkbenchActionaboutAction;
- publicApplicationActionBarAdvisor(IActionBarConfigurerconfigurer){
- super(configurer);
- }
- protectedvoidmakeActions(IWorkbenchWindowwindow){
- aboutAction=newAboutAction(window);
- aboutAction.setId("test.about");
- aboutAction.setText("关于");
- register(aboutAction);
- }
- protectedvoidfillMenuBar(IMenuManagermenuBar){
- menuBar.add(createHelpMenu());
- }
- privateMenuManagercreateHelpMenu(){
- MenuManagermenu=newMenuManager("About");
- menu.add(aboutAction);
- returnmenu;
- }
- }
完成这些代码以后我们就能够运转了。以后就会呈现一下的窗体:
<br>
<br>
<br>
如许自界说菜单就完成了。
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。 |
|