java做成视图的软件_使用Eclipse RCP进行桌面程序开发(三):视图和透视图

Eclipse RCP开发中,和用户进行交互最多的界面,应该是视图了,而透视图就是将已有的视图、菜单、工具栏、编辑器等等进行组合和布局。看完这一节,我们就可以建立如下图这样的程序界面了。

241ea967744976fb3838f3a36f7d0bf3.png

首先我们来介绍一下视图,建立一个视图其实非常简单,只要从org.eclipse.ui.part.ViewPart继承一个类,然后在plugin.xml中进行视图的配置。其中,向视图中添加控件的操作,我们即可以手工编写,也可以使用Designer插件,我这里推荐大家使用Designer插件,该插件对RCP提供功能非常强大的支持,如果使用Designer插件开发视图,则plugin.xml文件也不需要我们手动修改了。

比如我们上图中的第一个视图,就是从ViewPart继承一个类,然后在上面加入了几个swt的控件,做得非常得简单,而它的配置文件如下:

1

f5da1577b1a76b6bdbf86232baa96791.gifpoint="org.eclipse.ui.views">3f5da1577b1a76b6bdbf86232baa96791.gifclass="cn.blogjava.youxia.views.FirstView"5f5da1577b1a76b6bdbf86232baa96791.gif            id="cn.blogjava.youxia.views.FirstView"6f5da1577b1a76b6bdbf86232baa96791.gif            name="第一个View"/>7f5da1577b1a76b6bdbf86232baa96791.gif

可以看到,实现这个视图的class为cn.blogjava.youxia.views.FirstView,那么我们看看FirstView.java吧:

1

f5da1577b1a76b6bdbf86232baa96791.gifpackagecn.blogjava.youxia.views;2f5da1577b1a76b6bdbf86232baa96791.gif3f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.jface.action.IMenuManager;4f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.jface.action.IToolBarManager;5f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.jface.viewers.TableViewer;6f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.swt.SWT;7f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.swt.widgets.Composite;8f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.swt.widgets.Label;9f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.swt.widgets.Table;10f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.swt.widgets.Text;11f5da1577b1a76b6bdbf86232baa96791.gifimportorg.eclipse.ui.part.ViewPart;12f5da1577b1a76b6bdbf86232baa96791.gif13fd2feef633b12b9defaf11c9e8def7b0.gif

ec36a63f9af9a6863baad64b730cb2e7.gifpublicclassFirstViewextendsViewPart7b51cf4a9910468b02e881ee3f34c63a.gif{146090bb5c06adc9ff6115224fa8d860a0.gif156090bb5c06adc9ff6115224fa8d860a0.gifprivateTable table;166090bb5c06adc9ff6115224fa8d860a0.gifprivateText text_1;176090bb5c06adc9ff6115224fa8d860a0.gifprivateText text;186090bb5c06adc9ff6115224fa8d860a0.gifpublicstaticfinalString ID = "cn.blogjava.youxia.views.FirstView";//$NON-NLS-1$196090bb5c06adc9ff6115224fa8d860a0.gif208a43ea39af2aa4ffc20f67f0a8719bc3.gif

d315a1fa25f47ef741e8145ab4aea984.gif/** *//**216090bb5c06adc9ff6115224fa8d860a0.gif     * Create contents of the view part226090bb5c06adc9ff6115224fa8d860a0.gif     *@paramparent23eeb755b7530aeb46e3f6ab0ad5f973a5.gif     */246090bb5c06adc9ff6115224fa8d860a0.gif    @Override258a43ea39af2aa4ffc20f67f0a8719bc3.gif

d315a1fa25f47ef741e8145ab4aea984.gifpublicvoidcreatePartControl(Composite parent)7b51cf4a9910468b02e881ee3f34c63a.gif{266090bb5c06adc9ff6115224fa8d860a0.gif        Composite container =newComposite(parent, SWT.NONE);276090bb5c06adc9ff6115224fa8d860a0.gif286090bb5c06adc9ff6115224fa8d860a0.giffinalLabel label =newLabel(container, SWT.NONE);296090bb5c06adc9ff6115224fa8d860a0.gif        label.setText("姓名:");306090bb5c06adc9ff6115224fa8d860a0.gif        label.setBounds(56, 41, 36, 12);316090bb5c06adc9ff6115224fa8d860a0.gif326090bb5c06adc9ff6115224fa8d860a0.gif        text =newText(container, SWT.BORDER);336090bb5c06adc9ff6115224fa8d860a0.gif        text.setBounds(98, 38, 80, 15);346090bb5c06adc9ff6115224fa8d860a0.gif356090bb5c06adc9ff6115224fa8d860a0.giffinalLabel label_1 =newLabel(container, SWT.NONE);366090bb5c06adc9ff6115224fa8d860a0.gif        label_1.setText("性别:");376090bb5c06adc9ff6115224fa8d860a0.gif        label_1.setBounds(212, 41, 30, 12);386090bb5c06adc9ff6115224fa8d860a0.gif396090bb5c06adc9ff6115224fa8d860a0.gif        text_1 =newText(container, SWT.BORDER);406090bb5c06adc9ff6115224fa8d860a0.gif        text_1.setBounds(252, 38, 80, 15);416090bb5c06adc9ff6115224fa8d860a0.gif426090bb5c06adc9ff6115224fa8d860a0.giffinalTableViewer tableViewer =newTableViewer(container, SWT.BORDER);436090bb5c06adc9ff6115224fa8d860a0.gif//tableViewer.setInput(new Object());446090bb5c06adc9ff6115224fa8d860a0.giftable = tableViewer.getTable();456090bb5c06adc9ff6115224fa8d860a0.gif        table.setBounds(56, 75, 374, 143);466090bb5c06adc9ff6115224fa8d860a0.gif        table.setItemCount(10);476090bb5c06adc9ff6115224fa8d860a0.gif        table.setLinesVisible(true);486090bb5c06adc9ff6115224fa8d860a0.gif//496090bb5c06adc9ff6115224fa8d860a0.gifcreateActions();506090bb5c06adc9ff6115224fa8d860a0.gif        initializeToolBar();516090bb5c06adc9ff6115224fa8d860a0.gif        initializeMenu();52eeb755b7530aeb46e3f6ab0ad5f973a5.gif            }536090bb5c06adc9ff6115224fa8d860a0.gif548a43ea39af2aa4ffc20f67f0a8719bc3.gif

d315a1fa25f47ef741e8145ab4aea984.gif/** *//**556090bb5c06adc9ff6115224fa8d860a0.gif     * Create the actions56

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值