freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

gwt開(kāi)發(fā)者手冊(cè)_v-資料下載頁(yè)

2024-11-05 08:47本頁(yè)面

【導(dǎo)讀】通過(guò)本文檔,經(jīng)過(guò)短期學(xué)習(xí),即可使用GWT進(jìn)行日常開(kāi)發(fā)工作。核心GWT概念,諸如:把JAVA原碼編譯為JAVASCRIPT原碼,調(diào)試,跨瀏覽器支持,GWT編譯器支持大多數(shù)JAVA語(yǔ)言特性。GWT可以編譯J2SE或更早版本。但有一些不一致需要注意。畢竟,在JAVASCRIPT語(yǔ)言中沒(méi)有64位整型,所以long類(lèi)型變。量被映射到JAVASCRIPT的雙精度浮點(diǎn)類(lèi)型值。JAVASCRIPT解析器是單線(xiàn)程的,所以GWT自然接受synchronized關(guān)鍵字,下的JAVA對(duì)象清理。GWT不支持strictfp關(guān)鍵字,并且不能保證在轉(zhuǎn)換后的代碼中的浮。GWT只支持JAVA2標(biāo)準(zhǔn)版和企業(yè)版類(lèi)庫(kù)的一個(gè)小的子集,由于這些庫(kù)非常大,一些特定領(lǐng)域GWT與JAVA標(biāo)準(zhǔn)運(yùn)行時(shí)不同。JAVASCRIPT同效的JAVA正則表達(dá)式。檢查是否符合JRE仿真庫(kù)。這說(shuō)明GWT按鈕在不同的瀏覽器和不同的客戶(hù)端操作系統(tǒng)中。器中它作為純凈的JavaScript運(yùn)行-正如它最終要被部署的樣子。

  

【正文】 式面板( PopupPanel) 示例代碼: public class PopupPanelExample implements EntryPoint, ClickListener { private static class MyPopup extends PopupPanel { public MyPopup() { // PopupPanel39。s constructor takes 39。autohide39。 as its boolean parameter. // If this is set, the panel closes itself automatically when the user // clicks outside of it. super(true)。 // PopupPanel is a SimplePanel, so you have to set it39。s widget property to // whatever you want its contents to be. setWidget(new Label(Click outside of this popup to close it))。 } } public void onModuleLoad() { Button b = new Button(Click me)。 (this)。 ().add(b)。 } public void onClick(Widget sender) { // Instantiate the popup and show it. new MyPopup().show()。 } } 堆棧面板( StackPanel) 示例代碼: public class StackPanelExample implements EntryPoint { public void onModuleLoad() { // Create a stack panel containing three labels. StackPanel panel = new StackPanel()。 (new Label(Foo), foo)。 (new Label(Bar), bar)。 (new Label(Baz), baz)。 // Add it to the root panel. ().add(panel)。 } } 水平面板( HorizontalPanel) 示例代碼: 垂直面板( VerticalPanel) 示例代碼: 流面板( FlowPanel) 示例代碼: 停靠面板( DockPanel dock) 示例代碼: 標(biāo)簽頁(yè)面板( TabPanel) 示例代碼: ? 事件和監(jiān)聽(tīng)器 界面元素使用著名的 監(jiān)聽(tīng)器模式發(fā)出事件。 GWT 中的事件使用“監(jiān)聽(tīng)器接口”模式,類(lèi)似于 其他 用戶(hù)界面框架。一個(gè)監(jiān)聽(tīng)器接口 定義了一個(gè)或多個(gè)可被界面元素響應(yīng)事件時(shí)調(diào)用的方法。一個(gè)類(lèi)如果要接收特定事件,需要實(shí)現(xiàn)相關(guān)的接口,并且把自身的一個(gè)引用傳給界面元素來(lái)“支持”特定事件集。 例如 Button類(lèi),發(fā)出單擊事件。相關(guān)的監(jiān)聽(tīng)器接口是 ClickListener。 public void anonClickListenerExample() { Button b = new Button(Click Me)。 (new ClickListener() { public void onClick(Widget sender) { // handle the click event } })。 } 如上例,使用匿名內(nèi)部類(lèi)對(duì)大量界面元素來(lái)說(shuō)會(huì)是低效的。 因?yàn)樗鼤?huì)引起很多監(jiān)聽(tīng)器類(lèi)對(duì)象的創(chuàng)建。 當(dāng)它們調(diào)用一個(gè)監(jiān)聽(tīng)方法時(shí), 界面元素把它們的 this指針作為 sender參數(shù)。這允許在多個(gè)事件發(fā)布者中使用單個(gè)監(jiān)聽(tīng)器。這可以更好地使用內(nèi)存,但是只增加少量代碼,如下例所示: public class ListenerExample extends Composite implements ClickListener { private FlowPanel fp = new FlowPanel()。 private Button b1 = new Button(Button 1)。 private Button b2 = new Button(Button 2)。 public ListenerExample() { initWidget(fp)。 (b1)。 (b2)。 (this)。 (this)。 } public void onClick(Widget sender) { if (sender == b1) { // handle b1 being clicked } else if (sender == b2) { // handle b2 being clicked } } } 某些事件接口指定了多個(gè)事件。如果你只對(duì)其中一些感興趣,可以使用事件“適配器”的子類(lèi)。適配器只是簡(jiǎn)單使用空方法實(shí)現(xiàn)特定事件接口,利用它你可以不用實(shí)現(xiàn)接口中的每個(gè)方法而派生出一個(gè)監(jiān)聽(tīng)器類(lèi)。 public void adapterExample() { TextBox t = new TextBox()。 (new KeyboardListenerAdapter() { public void onKeyPress(Widget sender, char keyCode, int modifiers) { // handle only this one event } })。 } ? 創(chuàng)建一個(gè)自定義的界面元素 完全用 JAVA代碼創(chuàng)建你自己的界面元素。 Composites Composites 是創(chuàng)建新的界面元素的最有效率的方式。你能夠方便地把一組現(xiàn)存的界面元素綁定 到一個(gè) posite,這個(gè) posite 自身就是一個(gè)可重用的界面元素。 Composite是一個(gè)特定的界面元素,它可以包含其他組件(通常,一個(gè)面板),但是在行為上, 類(lèi) 似于一個(gè)被包含界面元素。 使用 posite 是使用 Panel子類(lèi)創(chuàng)建復(fù)雜界面元素的較好方法,以下是一個(gè)如何創(chuàng)建 posite 的例子。 在 JAVA代碼中從代碼片斷創(chuàng)建。 使 用 JAVASCRIPT ? 理解布局 理解界面元素如何在面板中放置。 面板在 GWT 中 類(lèi)似于其他用戶(hù)界面庫(kù)中的對(duì)應(yīng)物。 主要的區(qū)別是面板使用 HTML 元素,諸如 DIVT 和 TABLE 來(lái)放置它們的孩子元素。 根面板( RootPanel) 你遇到的第一個(gè)面板是 RootPanel。這個(gè)面板總是在容器層級(jí)的頂層。默認(rèn)的 RootPanel包裝了 HTML文檔的 BODY元素,用 ()方法得到。如果你需要 得到包裝了其他 HTML 文檔元素的根面板,可以使用 (String)方法。 單元面板( CellPanel) 單元面板是??棵姘澹?DockPanel) ,水平面板( HorizontalPanel) , 和垂直面板( VerticalPanel)的抽象基類(lèi)。一般這些面板都 會(huì)把它們的子界面元素放到一個(gè)“邏輯”單 元中。所以這些單元中的子界面元素可以通過(guò) setCellHorizontalAlignment() 和 setCellVerticalAlignment() 方 法 來(lái) 進(jìn) 行 排 列 。 單 元 面 板 也 可 以 通 過(guò) 方法和 方法來(lái)設(shè)置單元格自身的尺寸( 相對(duì)于整個(gè)面板 ) 。 其他面板 其他面板包括甲板面板( DeckPanel) ,表格頁(yè)面板( TabPanel) ,流面板( FlowPanel) , HTML 面板( HTMLPanel) , 和 堆棧面板( StackPanel)。 尺寸和度量 可以使用 setWidth(), setHeight()和 setSize()方法顯示地設(shè)置界面元素的大小。這些方法的參數(shù)是字符串型( string)的,而不是整型( integer) ,原因是它們接受 CSS 標(biāo)準(zhǔn),例如像素( 128px),厘米( 3cm),和百分比( 100%)。 ? 樣式表 界面元素可以很容易地用級(jí)聯(lián)樣式表( CSS)進(jìn)行風(fēng)格化。 GWT 界面元素使用級(jí) 聯(lián)樣式表定義視覺(jué)風(fēng)格。每個(gè)界面元素有一個(gè)關(guān)聯(lián)的樣式名字,它綁定到一個(gè) CSS 樣式規(guī)則。一個(gè)界面元素的樣式名字是使用 setStyleName()方法來(lái)設(shè)置的。例如,按鈕( Button)有一個(gè)默認(rèn)的名為 gwtButton的樣式。如果想讓所有的按鈕顯示更大的字體,可以在你的應(yīng)用程序 CSS 文件中使用下列規(guī)則: .gwtButton { fontsize: 150%。 } 復(fù)雜樣式 某些界面元素有稍微復(fù)雜的樣式。例如菜單條( MenuBar) ,有下列樣式: .gwtMenuBar { the menu bar itself } .gwtMenuBar .gwtMenuItem { menu items } .gwtMenuBar .gwtMenuItemselected { selected menu items } 在這個(gè)例子中,有兩個(gè)樣式規(guī)則應(yīng)用到菜單項(xiàng)。第一個(gè)應(yīng)用到所有的菜單項(xiàng)(選中的和未選中的),同時(shí)第二個(gè)(有 selected 后綴)應(yīng)用到選中的菜單項(xiàng)。一個(gè)選中的菜單項(xiàng)的樣式名字會(huì)被設(shè)置成 gwtMenuItem gwtMenuItemselected,這兩種樣式都會(huì)用到。最通常的方式是使用setStyleName來(lái)設(shè)置基本樣式名,然后用 addStyleName() 和 removeStyleName()方法來(lái)添加和去除第二個(gè)樣式名。 CSS 文件 一般地,樣式表被放置到你的模塊的公共路 徑( public path) 部分的某個(gè)包中。然后只需在你的主頁(yè)( host page)中引入即可,例如: link rel=stylesheet href= type=text/css 三、 遠(yuǎn)程過(guò)程調(diào)用( RPC) 一個(gè)易于使用的 RPC 機(jī)制,用于從服務(wù)器通過(guò)標(biāo)準(zhǔn) HTTP 協(xié)議發(fā)送或接收 JAVA對(duì)象。 GWT 應(yīng)用程序和傳統(tǒng)的 HTML WEB應(yīng)用程序一個(gè)根本的不同點(diǎn),就是當(dāng)它們執(zhí)行時(shí), GWT應(yīng)用程序不需要再 獲取新的 HTML 頁(yè)面。因?yàn)槭褂?GWT 技術(shù)的頁(yè)面實(shí)際上更像是運(yùn)行在瀏覽器中的一個(gè)應(yīng)用程序,不需要再?gòu)姆?wù)器請(qǐng)求 HTML 來(lái)更新用戶(hù)界面。畢竟,就像所有的客戶(hù)機(jī)/服務(wù)器應(yīng)用程序, GWT 應(yīng)用也需要經(jīng)常從服務(wù)器取得數(shù)據(jù)。與服務(wù)器通過(guò)網(wǎng)絡(luò)進(jìn)行交互的機(jī)制叫做遠(yuǎn)程方法調(diào)用( RPC),有時(shí)也被叫做服務(wù)器調(diào)用。這種機(jī)制可以在客戶(hù)機(jī)和服務(wù)器之間通過(guò) HTTP 方便地傳遞 JAVA對(duì)象 . 如果使用得當(dāng), RPC 可以把你的所有界面邏輯移到客戶(hù)端,這可以極大地提高執(zhí)行效率,減少帶寬占用,減少 WEB 服務(wù)器的負(fù)擔(dān),并且使用戶(hù)體驗(yàn)更加流暢。 服務(wù) 器端代碼經(jīng)常作為服務(wù)( service) 被客戶(hù)端調(diào)用,所以進(jìn)行遠(yuǎn)程過(guò)程調(diào)用有時(shí)也就是調(diào)用一個(gè)服務(wù)。更直白一點(diǎn),術(shù)語(yǔ)服務(wù)( service)并不是一般意義上的 WEB 服務(wù)( web service)的概念。實(shí)際上, GWT 服務(wù)和簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議( SOAP)無(wú)關(guān)。 規(guī)范 ? RPC 架構(gòu)圖(略) ? 創(chuàng)建服務(wù) 如何構(gòu)建一個(gè)服務(wù)接口 從一個(gè)客戶(hù)端 JAVA接口開(kāi)始,這個(gè)接口擴(kuò)展了 RemoteService接口。 public interface MyService extends RemoteService { public String myMethod(String s)。 } 這個(gè)同步接口是你的服務(wù)的規(guī)范的確定版本。 任何這個(gè)服務(wù)的服務(wù)器端實(shí)現(xiàn)必須擴(kuò)展RemoteServiceServlet并實(shí)現(xiàn)這個(gè)服務(wù)接口。 public class MyServiceImpl extends RemoteServiceServlet implements MyService { public String myMethod(String s) { // Do something interesting with 39。s39。 here on the server. return s。 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1