|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。初级|计划 EclipseForms供应了4个初级组件,如许你可以构建大度的UI:expandablecomposite,section,imagehyperlink和formtext.让我们顺次细心看看它们每个。
Expandablecomposite
在网页中有个广泛的功效就是让你有才能把一部分网页内容用一个按钮来伸缩它,EclipseForms供应了如许一个组件:ExpandableComposite。- ExpandableCompositeec=toolkit.createExpandableComposite(form.getBody(),ExpandableComposite.TREE_NODE|ExpandableComposite.CLIENT_INDENT);ec.setText("ExpandableCompositetitle");Stringctext="Wewillnowcreateasomewhatlongtextsothat"+"wecanuseitascontentfortheexpandablecomposite."+"Expandablecompositeisusedtohideorshowthetextusingthe""togglecontrol";Labelclient=toolkit.createLabel(ec,ctext,SWT.WRAP);ec.setClient(client);td=newTableWrapData();td.colspan=2;ec.setLayoutData(td);ec.addExpansionListener(newExpansionAdapter(){publicvoidexpansionStateChanged(ExpansionEvente){form.reflow(true);}});
复制代码 这个composite承受一些作风参数来把持它的体现举动.TREENODE作风会用树组件中的按钮来舒展或压缩内容,TWISTIE作风则会创立一个方行的按钮.利用EXPANDED,则初始形态是舒展的.假如用COMPACT作风,组件会呈报和题目宽度相符合的宽度而且出现压缩形态.最初,CLIENT_INDENT会使内容与题目对齐(不然,内容是依照组件的宽度).
ExpandableComposite有义务处置按钮组件和题目.能扩大和压缩的客户组件必需是expandablecomposite间接的child.我们必要为组件增加舒展监听器并"关照(reflow)"form在形态改动时.这是由于舒展改动了expandablecomposite的巨细,可是在parent下一次结构前对parent没有任何影响(因而必要强行告知它).大致上,每次你使form的layout改动时,你必要"reflow"这个form."Reflowing"这个form会让一切组件依照新的尺寸结构并更新转动条.
我们的视图如今看起来象如许:
1:一个压缩形态的expandablecomposite例子
当你点击题目的"+"时,composite舒展出并展现客户:
2:expandablecomposite呈舒展形态
expandablecomposite用到了一个外部layout,这个layout完成了EclipseFormsILayoutExtension接口.因而你可以把它加到利用TableWrapLayout结构的parent上,就象我们下面例子中做的一样.
段落(Section)
EclipseForms定制的组件中最versatile之一就是Section.它承继了expandablecomposite并先容了以下的观点:
1.分开条(Separator)-一个可以在题目下创立的separator组件.
2.形貌(Description)-在题目下的可选的形貌.
3.题目栏(Titlebar)-能在题目下的一个题目栏(注重separator和题目栏不克不及同时利用)
上面的代码和expandablecomposite代码例子差未几:- Sectionsection=toolkit.createSection(form.getBody(),Section.DESCRIPTION|Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED);td=newTableWrapData(TableWrapData.FILL);td.colspan=2;section.setLayoutData(td);section.addExpansionListener(newExpansionAdapter(){publicvoidexpansionStateChanged(ExpansionEvente){form.reflow(true);}});section.setText("Sectiontitle");section.setDescription("Thisisthedescriptionthatgoes"+belowthetitle");CompositesectionClient=toolkit.createComposite(section);sectionClient.setLayout(newGridLayout());button=toolkit.createButton(sectionClient,"Radio1",SWT.RADIO);button=toolkit.createButton(sectionClient,"Radio2",SWT.RADIO);section.setClient(sectionClient);
复制代码 此次我们用了TWISTIE作风,增加了形貌并请求有题目栏.这个视图看起来应当象如许:
3:一个有题目栏和形貌的可舒展的section
图片超链接(Imagehyperlink)
图片超链接是超链接的子类,它在链接笔墨下面增加了一个图片.这个寻常的分离十分成心义.这个组件能够只是一个图片(当没有设置任何笔墨时),或是图片加链接.图片在一般,hover,激活时的形态都能设置.
上面是一个用图片超链接的例子:
图片14:Eclipse接待页面中的form
Formtext组件
使标签(labels),超链接,图片和TableWrapLayout相分离,可以创立出庞大和壮大的forms.可是仍旧有一些事是很难做的.思索PDEmanifest编纂器的例子:
图片15:一个夹杂了文本,图片和超链接的庞大Eclipseform例子
注重图片,超链接和文本是怎样夹杂的.这里利用独自的标签和超链接组件是很困难的.为懂得决这个成绩,EclipseForms插件供应了一个壮大的文本组件,它有以下功效:
辨认一般包裹的文本
辨认一般文本,可是假如以http://开首的文本以超链接显现
辨认象HTML言语一样的文本
在一切形式下,formtext组件能辨认一个字符串或输出流(inputstream).
辨认一般文本(标签形式)
FormTextformText=toolkit.createFormText(form.getBody(),true);
td=newTableWrapData(TableWrapData.FILL);
td.colspan=2;
formText.setLayoutData(td);
Stringtext="Hereissomeplaintextforthetexttorender.";
formText.setText(text,false,false);
第二个参数设为false,意义是我们不必要剖析html标志,第三个参数设为false,意义是我们不需扩大URLs.
主动将URLs转化为超链接
如今我们会在文本中增加一个超链接,并把第3个参数设为true:
FormTextformText=toolkit.createFormText(form.getBody(),true);
td=newTableWrapData(TableWrapData.FILL);
td.colspan=2;
formText.setLayoutData(td);
Stringtext="Hereissomeplaintextforthetexttorender;"+
thistextisathttp://www.eclipse.orgwebsite.";
formText.setText(text,false,true);
假如看我们的视图,会是如许:
6:Formtext组件将URL主动转化为超链接
URL被转化为了链接.这个链接是包裹的文本中的一部分-我们不必要创立独自的超链接组件然后试着把它夹在两个标签两头.
由于formtext组件可以辨认超链接,因而它吸收我们后面用过的监听器.当由toolkit创立时,formtext会将toolkit的超链接组设置作为新超链接的设置.
在1995年5月23日以“Java”的名称正式发布了。 |
|