快速业务通道

创建Eclipse游戏插件,第1部分: 入门 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
org.eclipse.swt.widgets.Table。

视图如何创建和初始化

在 createPartControl 方法中,请注意在 viewer 实例变量用新的 TableViewer 初始化之后,下一行是 viewer.setContentProvider(new ViewContentProvider()。 ViewContentProvider 是在 ShootoutView 内部定义的内部类。

ViewContentProvider 实现了接口 org.eclipse.jface.Viewers.ISructuredContentProvider。这个接口定义了方法 getElements(),TableViewer 在需要填充底层表格时调用这个方法。可以看到它返回一个对象数组。在这个示例中,Eclipse 向导创建了一个简单的对象数组。可以看到在需要用真实数据填充表格的时候,这个方法是需要修改的方法。

createPartControl() 方法包含对私有方法的额外调用,这些方法设置处理键盘输入和鼠标点击所需要的回调。在后面的部分中,将进一步详细研究这些内容。

安排好布局

但是首先,要创建两个按钮,并把它们放在 TableViewer 下面。要做这个工作,必须首先创建和管理一个包含所有部件的布局。

同样,请注意创建 TableViewer 的那一行:

viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);

所有的 SWT 组件,在创建的时候,都被分配给一个容器,容器成为组件的双亲。现在的视图的双亲被传递给 createPartControl,并定义为 org.eclipse.SWT.widgets.Composite。而 composite 指的是任何能够包含其他 SWT 部件的 SWT 部件。从插件视图的角度来说,就是窗口。

不幸的是,生成的代码认为在这个窗口中要做的全部工作就是 TableViewer。由于代码已经生成,所以没有简单的方法可以添加按钮并让按钮出现在需要的位置上。必须首先引入一个布局,由它管理部件(包括 TableViewer)的位置和尺寸。

使用 GridLayout 和 GridData

Eclipse 在 org.eclipse.swt.layout 包中提供了许多布局。其中最强大最灵活的布局之一是 GridLayout。请在 createPartControl 方法的顶部现有方法之前,添加以下代码:

GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 2; parent.setLayout(gridLayout);

这就创建了一个 GridLayout 布局管理器,它有两个列,并把它设置成画布(传递给这个方法的双亲)使用的布局管理器。

现在可以控制 TableViewer 部件的摆放了。要做这个工作,将使用 GridLayout 的伴侣类 GridData。请添加下面这些行:

GridData gridData = new GridData(); gridData.horizontalSpan = 2; gridData.horizontalAlignment = SWT.FILL;

这告诉布局管理器:想让部件占两列,让布局管理器把对象拓宽以占满每个列。

然后把 GridData 对象分配给想在上面实施这些约束的部件。在这个示例中,是 TableViewer 对象。但是有一个问题:TableViewer 实际不是个 SWT 对象;它是 Table 对象的包装器。这个对象上看起来没有方法可以用来设置它的布局。

创建Eclipse游戏插件,第1部分: 入门(10)

时间:2011-02-10 IBM Trebor Fenstermaker

实际上,必须要做的是访问底层 SWT 表格,然后直接设置它的布局。请在调用 viewer 的不同设置器的块之后添加这行代码:

viewer.getTable().setLayoutData(gridData); 

createPartControl 现在看起来应当像清单 2 一样。

清单 2. 到目前为止的 createPartControl 方法

public void createPartControl(Composite parent) {    GridLayout gridLayout = new GridLayout();    gridLayout.numColumns = 2;    parent.setLayout(gridLayout);    GridData gridData = new GridData();    gridData.horizontalSpan = 2;    gridData.horizontalAlignment = SWT.FILL;    viewer = new TableViewe

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号