快速业务通道

定制SWT/RCP界面:如何编写一个漂亮的SWT/RCP界面 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13
形。 同时添加窗体变化的 Listener,通过绘制图片来设置窗体的背景。

清单 8. 设置窗体的背景

public void createWindowContents(final Shell shell) {    IWorkbenchWindowConfigurer configurer = getWindowConfigurer();    //    page = configurer.createPageComposite(shell);    pageRegion = getBackRegionFromImage(shell.getDisplay(), pageImage, 0, 0);    ImageData pageData = pageImage.getImageData();    page.setRegion(pageRegion);    page.setBounds(45, 21, pageData.width, pageData.height);    //    Button startBt = new Button(shell, SWT.PUSH);    //startBtRegion = getBackRegionFromImage(shell.getDisplay(), startBtImage);    startBtRegion = new Region();    startBtRegion.add(circle(35, 40, 40));    ImageData startData = startBtImage.getImageData();    startBt.setRegion(startBtRegion);    startBt.setSize(startData.width+10, startData.height+10);    startBt.setLocation(575, 297);    startBt.setImage(startBtImage);    startBt.setToolTipText("Play media");    startBt.addSelectionListener(new SelectionAdapter(){      public void widgetSelected(SelectionEvent e) {        // TODO Auto-generated method stub         String [] ext = {"*.AVI", "*.mp3", "*.*"};        FileDialog dlg = new FileDialog(shell, SWT.OPEN);        dlg.setText("Select Media...");        dlg.setFilterExtensions(ext);        String file = "file://" + dlg.open();        //        String editorID = "RCPDemo.mediaplay";        try {          PlatformUI.getWorkbench().getActiveWorkbenchWindow()          .getActivePage().openEditor(new MediaPlayerInput(file), editorID);        } catch (PartInitException e1) {          // TODO Auto-generated catch block           e1.printStackTrace();        }    });    //    Button exitBt = new Button(shell, SWT.PUSH);    exitRegion = getBackRegionFromImage(shell.getDisplay(), exitImage, 5, 5);    ImageData exitData = exitImage.getImageData();    exitBt.setRegion(exitRegion);    exitBt.setSize(exitData.width+10, exitData.height+10);    exitBt.setLocation(615, 350);    exitBt.setImage(exitImage);    exitBt.setToolTipText("Exit");    exitBt.addSelectionListener(new SelectionAdapter(){      public void widgetSelected(SelectionEvent e) {        // TODO Auto-generated method stub         PlatformUI.getWorkbench().close();      }    });   }

这段代码是创建窗体上的控件,一个 video 播放 editor,一个播放按钮和一个退出按钮。video 播放 editor 是 Page 的一部分,而 Page 的外形通过图片来定义;一个播放按钮是通过一个文件对话框让用户来选择需要播放的 video 文件。

通过上面的介绍,我们可以看到,SWT/RCP 是一个非常优秀的应用界面 SDK,不光可以编写经典的窗体,还可以编写漂亮的多边形窗体及控件。希望读者通过本文的介绍,多使用 SWT/RCP

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号