海妖 发表于 2015-1-18 11:13:16

JAVA编程:Eclipse Forms计划大度UI之初级组件

专门做了这个例子;而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”的名称正式发布了。

小妖女 发表于 2015-1-20 17:27:11

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

不帅 发表于 2015-1-29 13:24:09

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

灵魂腐蚀 发表于 2015-1-30 11:22:22

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

分手快乐 发表于 2015-2-6 10:55:33

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

admin 发表于 2015-2-15 23:56:41

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

若相依 发表于 2015-2-16 05:04:12

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

兰色精灵 发表于 2015-3-1 07:44:56

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

老尸 发表于 2015-3-10 12:55:36

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

深爱那片海 发表于 2015-3-11 08:22:26

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

柔情似水 发表于 2015-3-17 23:57:58

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

因胸联盟 发表于 2015-3-25 08:02:58

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
页: [1]
查看完整版本: JAVA编程:Eclipse Forms计划大度UI之初级组件