国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Eclipse Forms設(shè)計(jì)漂亮UI之高級(jí)組件

2019-11-18 15:46:50
字體:
供稿:網(wǎng)友

  Eclipse Forms提供了4個(gè)高級(jí)組件,這樣你能夠構(gòu)建漂亮的UI:eXPandable composite,section,image hyperlink和form text.讓我們依次仔細(xì)看看它們每一個(gè)。

  Expandable composite

  在網(wǎng)頁中有個(gè)普遍的功能就是讓你有能力把一部分網(wǎng)頁內(nèi)容用一個(gè)按鈕來伸縮它,Eclipse Forms提供了這樣一個(gè)組件:ExpandableComposite。
 ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(),       ExpandableComposite.TREE_NODE      ExpandableComposite.CLIENT_INDENT);  ec.setText("Expandable Composite title");  String ctext = "We will now create a somewhat long text so that "+  "we can use it as content for the expandable composite. "+  "Expandable composite is used to hide or show the text using the "   "toggle control";  Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);  ec.setClient(client);  td = new TableWrapData();  td.colspan = 2;  ec.setLayoutData(td);  ec.addExpansionListener(new ExpansionAdapter() {   public void expansionStateChanged(ExpansionEvent e) {    form.reflow(true);   }  });
  這個(gè)composite接受一些風(fēng)格參數(shù)來控制它的表現(xiàn)行為.TREENODE風(fēng)格會(huì)用樹組件中的按鈕來伸展或收縮內(nèi)容,TWISTIE風(fēng)格則會(huì)創(chuàng)建一個(gè)方行的按鈕.使用EXPANDED,則初始狀態(tài)是伸展的.假如用COMPACT風(fēng)格,組件會(huì)報(bào)告和標(biāo)題寬度相合適的寬度并且呈現(xiàn)收縮狀態(tài).最后,CLIENT_INDENT會(huì)使內(nèi)容與標(biāo)題對(duì)齊(否則,內(nèi)容是按照組件的寬度).

  ExpandableComposite有責(zé)任處理按鈕組件和標(biāo)題.能擴(kuò)展和收縮的客戶組件必須是expandablecomposite直接的child. 我們需要為組件添加伸展監(jiān)聽器并"通知(reflow)"form在狀態(tài)改變時(shí).這是因?yàn)樯煺垢淖兞薳xpandable composite的大小,但是在parent下一次布局前對(duì)parent沒有任何影響(因此需要強(qiáng)行告訴它).大體上,每次你使form的layout改變時(shí),你需要"reflow"這個(gè)form."Reflowing"這個(gè)form會(huì)讓所有組件按照新的尺寸布局并更新滾動(dòng)條.

  我們的視圖現(xiàn)在看起來象這樣:
 
Eclipse Forms設(shè)計(jì)漂亮UI之高級(jí)組件(圖一)
圖11:一個(gè)收縮狀態(tài)的expandable composite例子

  當(dāng)你點(diǎn)擊標(biāo)題的"+"時(shí),composite伸展出并展示客戶:

Eclipse Forms設(shè)計(jì)漂亮UI之高級(jí)組件(圖二)

圖12:expandable composite呈伸展?fàn)顟B(tài)

  expandable composite用到了一個(gè)內(nèi)部layout,這個(gè)layout實(shí)現(xiàn)了Eclipse Forms ILayoutExtension接口.因此你能夠把它加到使用TableWrapLayout布局的parent上,就象我們上面例子中做的一樣.

  段落(Section)

  Eclipse Forms定制的組件中最versatile之一就是Section.它繼續(xù)了expandable composite并介紹了以下的概念:

  1.分隔條(Separator)-一個(gè)能夠在標(biāo)題下創(chuàng)建的separator組件.

  2.描述(Description)-在標(biāo)題下的可選的描述.

  3.標(biāo)題欄(Title bar)-能在標(biāo)題下的一個(gè)標(biāo)題欄(注重separator和標(biāo)題欄不能同時(shí)使用)

  下面的代碼和expandable composite代碼例子差不多:
 Section section = toolkit.createSection(form.getBody(),  

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 花莲县| 西城区| 南通市| 全南县| 天津市| 苏尼特左旗| 淮阳县| 新河县| 岱山县| 弋阳县| 郧西县| 兴山县| 南阳市| 开封市| 颍上县| 商都县| 沙雅县| 青铜峡市| 扎鲁特旗| 龙门县| 交口县| 霍城县| 南召县| 奉节县| 理塘县| 高陵县| 桦甸市| 昌宁县| 宝兴县| 宁陕县| 乌鲁木齐市| 县级市| 新和县| 湟源县| 达孜县| 海南省| 西藏| 雷波县| 抚宁县| 天长市| 安多县|