<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java Me Games

    Java, Me, and Games.

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      13 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

    2008年11月20日 #

    image

    豬通過勤勞致富有5元錢存在老鼠開的錢莊里。豬打算拿這5元錢建一個小窩,大概要花2元賣地,花3元搭窩。

    王八是搞工程的,他想在豬身上掙更多的錢,于是找來當投資顧問的狐貍想辦法,狐貍說:這好辦。于是找來管地盤的狼,開錢莊的老鼠一起來商議,結果王八從老鼠那里借來200元,用100元賣了狼的地,花了3元把豬窩蓋好,花了50元給了狐貍咨詢服務費,豬沒有地,只好求王八把窩賣給它,王八要價500元,老豬說只有5元買不起,這時候狐貍說服豬去向老鼠借錢,老鼠答應借500給豬,前提是要他連本帶利還600元,可以分10年還清,并且產權證拿來抵押。

    結果成交。豬到最后花了600元買來了豬窩,比他原來的計劃高了11倍,豬努力了十年去掙錢還貸。

    在這場交易里面,狼,老鼠,狐貍還有王八都掙了錢。以后他們就如法炮制。更多的豬去貸款買房子了,這時候,當商人的驢看到有機可乘,到老鼠那里貸了好多好多的款,把王八蓋的房子都買下來,然后以更高的價格賣給了豬。

    豬的還貸期就越來越長,吃的越來越差,小豬崽子也不敢生了。由于豬的數目越來越少,狼覺得這樣下去自己沒有豬肉吃了,非餓死不可,于是開始調控,不讓老鼠再借錢了。但是王八還沒有停止蓋房,把自己掙的錢和貸的錢全投入生產了。驢手上的豬窩囤積的很多,賣不動了被套牢了。

    結果,老鼠,王八,還有驢都掙了好多的豬窩。錢到最后集中到狼手上。如今,誰都等著狼把錢拿出來救命。聰明的你,如果你是狼,你會拿錢救哪個?

    posted @ 2008-11-20 15:13 Nile Black 閱讀(248) | 評論 (0)編輯 收藏

    2007年3月8日 #

    以前對于路由器總是似懂非懂的,今天花了點時間看看,在這里做一個記錄。[摘自tcp/ip詳解]

    network.JPG


    基本的網絡環境



    3-4.JPG包如何在網絡上轉發

    參看tcp/ip協議詳解第三章



    路由表
    router-table-at-srv4.JPGsrv4的路由表,詳細參考tcp/ip協議詳解第10章

    router-table-at-sun.JPGsun的路由表,詳細參考tcp/ip協議詳解第10章

    關于路由表的說明
    對于一個給定的路由器,可以打印出五種不同的標志( f l a g):
    U 該路由可以使用。
    G 該路由是到一個網關(路由器)。如果沒有設置該標志,說明目的地是直接相連的。
    H 該路由是到一個主機,也就是說,目的地址是一個完整的主機地址。如果沒有設置該
    標志,說明該路由是到一個網絡,而目的地址是一個網絡地址:一個網絡號,或者網
    絡號與子網號的組合。
    D 該路由是由重定向報文創建的( 9 . 5節)。
    M 該路由已被重定向報文修改( 9 . 5節)。


    路由表的搜索

    1) 搜索匹配的主機地址;
    2) 搜索匹配的網絡地址;
    3) 搜索默認表項(默認表項一般在路由表中被指定為一個網絡表項,其網絡號為0)。
    匹配主機地址步驟始終發生在匹配網絡地址步驟之前。


    關鍵的說明,需要仔細理解,可以多看幾遍

    標志G是非常重要的,因為由它區分了間接路由和直接路由(對于直接路由來說是不設置標志G的)。其區別在于,發往直接路由的分組中不但具有指明目的端的I P地址,還具有其鏈路層地址(見圖3 - 3)。當分組被發往一個間接路由時, I P地址指明的是最終的目的地,但是鏈路層地址指明的是網關(即下一站路由器)。我們在圖3 - 4已看到這樣的例子。在這個路由表例子中,有一個間接路由(設置了標志G),因此采用這一項路由的分組其I P地址是最終的目的地(1 4 0 . 2 5 2 . 1 3 . 6 5),但是其鏈路層地址必須對應于路由器1 4 0 . 2 5 2 . 1 3 . 3 5。
    理解G和H標志之間的區別是很重要的。G標志區分了直接路由和間接路由,如上所述。但是H標志表明,目的地址( n e t s t a t命令輸出第一行)是一個完整的主機地址。沒有設置H標志說明目的地址是一個網絡地址(主機號部分為0)。當為某個目的I P地址搜索路由表時,主機地址項必須與目的地址完全匹配,而網絡地址項只需要匹配目的地址的網絡號和子網號就可以了。另外,大多數版本的n e t s t a t命令首先打印出所有的主機路由表項,然后才是網絡路由表項。

    不理解的一個問題

    在sun的路由表上為什么會有140.252.1.183 140.252.1.29 uh 0 0 sl0這么一條路由,它什么時候有用呢?

    posted @ 2007-03-08 14:32 Nile Black 閱讀(1442) | 評論 (0)編輯 收藏

    2007年1月11日 #

    昨夜星辰昨夜風,畫樓西畔桂堂東。
    身無彩鳳雙飛翼,心有靈犀一點通。
    隔座送鉤春酒暖,分曹射覆蠟燈紅。
    嗟余聽鼓應官去,走馬蘭臺類轉蓬。

    posted @ 2007-01-11 23:28 Nile Black 閱讀(237) | 評論 (0)編輯 收藏

    2007年1月10日 #

    Being a better programmer means being able to design more effective and trustworthy programs and knowing how to do that efficiently.

    做更好的程序員意味著能夠設計更高效的、可靠的程序,和知道如何高效的實現這一目標。

    看到這句話有點意思,effictive,trustworthy,就是程序所要追求的目標。

    posted @ 2007-01-10 09:47 Nile Black 閱讀(299) | 評論 (0)編輯 收藏

    2007年1月6日 #

    摘要: 本文介紹用GWT(Google Web Toolkit)開發第一個Ajax應用。應用效果,將在應用頁面顯示一個按鈕,點擊時候顯示"HelloWorld"
    關鍵字: GWT Google Web Toolkit Ajax 入門應用

    環境準備

    • eclipse
    • google web toolkit
    • tomcat_5.0.28
    • 以上3者均可通過google搜索方便下載到,安裝配置不再詳細介紹

    實現過程

    1、創建應用
    創建一個gwt項目的目錄,我的就是在d:\gwt_test\helloworld
    用gwt的applicationCreator.bat(該批處理文件在gwt安裝目錄下可以看到)創建應用:
    applicationCreator.cmd org.jmg.client.HelloWorld
    成功執行輸出:
    Created directory D:\gwttest\helloworld\src(這個目錄包含自動創建的java文件)
    Created directory D:\gwttest\helloworld\src\org\jmg
    Created directory D:\gwttest\helloworld\src\org\jmg\client
    Created directory D:\gwttest\helloworld\src\org\jmg\public
    Created file D:\gwttest\helloworld\src\org\jmg\HelloWorld.gwt.xml
    Created file D:\gwttest\helloworld\src\org\jmg\public\HelloWorld.html
    Created file D:\gwttest\helloworld\src\org\jmg\client\HelloWorld.java
    Created file D:\gwttest\helloworld\HelloWorld-shell.cmd(這個命令將會調用gwt內置的服務器來運行應用)
    Created file D:\gwttest\helloworld\HelloWorld-compile.cmd(編譯應用,把前邊的java文件編譯成javascript代碼,和其他的附加文件,注意,他不會編譯server端文件)

    2、編譯輸出:
    執行helloworld下的HelloWorld-compile.cmd
    Output will be written into D:\gwttest\helloworld\www\org.jmg.HelloWorld(默認的,gwt會把客戶端代碼文件放到一個名字為完整的應用名稱的目錄)
    Copying all files found on public path
    Compilation succeeded
    編譯成功。

    3、準備tomcat:
    在tomcat安裝目錄下webapps目錄創建一個gwt文件夾
    相應的創建其他的web應用的文件和文件夾:
    gwt\WEB-INF
    gwt\WEB-INF\classes
    gwt\WEB-INF\lib
    gwt\WEB-INF\web.xml
    web.xml內容如下: <?xml version="1.0" encoding="UTF-8"?> <web-app> </web-app>

    4、部署到tomcat:
    在gwt目錄創建helloword目錄
    復制剛才執行HelloWorld-compile.cmd生成的文件(在www\org.jmg.HelloWorld目錄)到helloworld目錄下,注意,只要這個文件夾中的文件,不要文件夾。

    5、運行看效果:
    啟動tomcat
    訪問http://localhost:8080/gwt/helloworld/HelloWorld.html
    頁面上將會顯示
    一個標題,一段說明文字,和一個Click Me按鈕
    點擊按鈕將會顯示 "HelloWorld"文字

    參考: GWT Google Web Toolkit Hello World Example Project
    更多文章:


    posted @ 2007-01-06 03:30 Nile Black 閱讀(404) | 評論 (0)編輯 收藏

    用GWT(Google Web Toolkit)開發Ajax-圖片瀏覽
    摘要 從本文開始我們開始一個有點實際意義的應用,圖片瀏覽器,初步我們只實現簡單的框架來實現圖片瀏覽的基本功能,然后再繼續深化,做出更好的界面,和更多的管理功能。
    關鍵字 Google Web Toolkit GWT Ajax 圖片瀏覽

    簡單設計

    設想一下簡單的界面效果,和已經實現這個效果需要的提供的數據服務。
    打開畫圖版,簡單的畫一下界面。
    圖片瀏覽
    界面說明
    • 最頂上一個橫向的標題欄
    • 中間左邊一個是小的預覽圖片列表
    • 中間右邊是圖片瀏覽主窗口
    • 最底部有一個簡單的版權之類的說明
    數據服務
    • 一保存圖片信息的數據結構
    • 一個能獲取指定要求的圖片的集合的服務

    實現過程

    創建界面
    頁面構成,參看已經設計的界面,從外往內一個一個結構,把界面分成上中下三個面板,其中第二塊分割成左右兩個面板。這樣不難得到這樣的結果,在onModuleLoad方法中添加實現一下功能的代碼:
    VerticalPanel mainPanel;//主面板
    HorizontalPanel topPart;//頂端部分
    HorizontalPanel centerPart;//中間部分
    HorizontalPanel bottomPart;//底端部分
    HorizontalPanel imagesPart;//圖片列表
    HorizontalPanel previewPart;//圖片預覽
    //按照以下安裝過程組裝
    mainPanel.add(topPart);
    mainPanel.add(centerPart);
    mainPanel.add(bottomPart);
    centerPart.add(imagesPart);
    centerPart.add(previewPart);
    注意可能我們的圖片會很多,希望不會把頁面撐得很長很長,GWT提供了不過的ScrollPanel,只要把 centerPart.add(imagesPart);修改成centerPart.add(new ScrollPanel(imagesPart));就可以了。
    同樣圖片也可能會很大,也一樣在previewPart上添加一個滾動面板。

    圖片服務實現

    1. 一個保存圖片數據的數據結構,簡單點,創建一個org.jmg.client.ImageData implements IsSerializable,這個類中只有兩個屬性,title,url,這兩個屬性已經很好的表明他們的用途了,不再細說。至于getter, setter,我只提供了get,初始化用構造函數傳參,你也可以根據自己習慣修改。個人原則,能不提供的方法盡量不提供。需要注意一點很重要,這個類一定要實現com.google.gwt.user.client.rpc.IsSerializable這個標志接口,這個會在編譯的時候生成相應的 javascript的對象,用戶在客戶端運行。
    2. 創建服務,在client包中寫ImageServiceAsync,ImageService,這兩個接口,在server中實現 ImageServiceImpl implements ImageService。ImageServiceImpl,所需提供的方法就是獲取圖片列表,返回一個ImageData數組或是集合類,都可以,我這里選擇了數組。

    添加客戶端事件
    有了界面,有了服務,就可以把這兩個東西組裝在一起了。我們需要兩個事件處理,第一個是在客戶端剛剛打開的時候,在"創建界面"小節中我們已經在 onModuleLoad添加了界面大致框架的初始化,現在我們要調用服務,并且把獲取到的數據,構造成 com.google.gwt.user.client.ui.Image對象,添加到imagesPart中,代碼大致如下:

    async.getImageData(new AsyncCallback() {
    public void onFailure(Throwable caught) {
    }
    public void onSuccess(Object result) {
    ImageData[] images = (ImageData[]) result;
    for (int i = 0; i < images.length; i++) {
    Image image = new Image(images[i].getUrl());//根據url構造image對象
    image.setPixelSize(120, 120);//限制預覽圖片的大小
    imagesPart.add(image);//添加到imagesPart中
    }
    }
    });
    到這里你編譯部署的時候就已經可以看到大致的運行效果了。左邊是一個小圖片的列表,右邊是一塊空白的區域。
    到現在剩下的事情就是需要在小圖上添加一個鼠標事件,在鼠標移上去的時候,右邊顯示大圖。
    這個過程也很簡單,就像寫swing程序一樣,只要在上邊的Image對象構造好的時候添加一個mouseListener就可以了:
    image.addMouseListener(new MouseListenerAdapter() {
    public void onMouseEnter(Widget sender) {
    sender.addStyleName("selected");
    previewPart.clear();
    Image img = new Image(((Image)sender).getUrl());
    //注意這里的Image需要創建一個,而不是sender強換型,
    //最初的時候我就是為了節省一個對象,強換型了一次,
    //至于效果你可以自己動手改改試試看
    img.addStyleName("big");
    previewPart.add(img);
    }
    public void onMouseLeave(Widget sender) {
    sender.removeStyleName("selected");
    }
    });

    運行部署 到這里我們的圖片瀏覽器就基本完成了,至于樣式表之類的東西就不在這里說了。不說不是表示不重要,GWT推薦所有東西都用樣式表來控制,而是很重要。這里我截了一個簡單的圖,僅作運行效果:

    運行圖例

    源碼下載:imageviewer_src.rar
    運用下載:imageviewer.rar


    參考
    更多文章
    posted @ 2007-01-06 03:29 Nile Black 閱讀(1426) | 評論 (0)編輯 收藏

    通常一個MIDlet程序有兩個運行時屬性,系統的和程序的(system and application)。這些屬性都只能讀取,不能修改。

    系統屬性

    系統的屬性一般是由設備定義的。在各個jsr標準中定義了一些系統屬性的鍵值(key)。附1的表格就列出了當前的一些已經定義的系統屬性名。

    讀取方法:System.getProperty() ,這是一個靜態方法

    程序屬性

    程序屬性是在程序的描述文件中和jar包的manifest文件中定義。附2中就就是一個典型的描述文件。假如同樣的屬性在描述文件中和manifest文件中都被定義了,沖突會這樣被處理:假如MIDlet是一個MIDP2.0的可信任的程序,系統會直接拒絕安裝程序。否則,程序描述文件中定義的值會覆蓋manifest中定義的屬性。(If the MIDlet is a trusted application based on MIDP 2.0, the system simply won't install the application. Otherwise, the value in the descriptor overrides the value in the manifest.)

    讀取方法:MIDlet.getAppProperty(),這是一個實例方法

    注意:1、這些屬性的名稱是區分大小寫的。2、假如獲取一個沒有定義過的名稱,會返回一個null值。3、不要定義太多的屬性,有些設備上的描述大小是有限制的。

    原文參看:http://developers.sun.com/techtopics/mobility/midp/ttips/appproperty/index.html

    附1:
    J2ME Defined System Properties

    JSR Property Name
    Default Value1
    30 microedition.platform null
    microedition.encoding ISO8859_1
    microedition.configuration CLDC-1.0
    microedition.profiles null
    37 microedition.locale null
    microedition.profiles MIDP-1.0
    75 microedition.io.file.FileConnection.version 1.0
    file.separator (impl-dep)
    microedition.pim.version 1.0
    118 microedition.locale null
    microedition.profiles MIDP-2.0
    microedition.commports (impl-dep)
    microedition.hostname (impl-dep)
    120 wireless.messaging.sms.smsc (impl-dep)
    139 microedition.platform (impl-dep)
    microedition.encoding ISO8859-1
    microedition.configuration CLDC-1.1
    microedition.profiles (impl-dep)
    177 microedition.smartcardslots (impl-dep)
    179 microedition.location.version 1.0
    180 microedition.sip.version 1.0
    184 microedition.m3g.version 1.0
    185 microedition.jtwi.version 1.0
    195 microedition.locale (impl-dep)
    microedition.profiles IMP-1.0
    205 wireless.messaging.sms.smsc (impl-dep)
    205 wireless.messaging.mms.mmsc (impl-dep)
    211 CHAPI-Version 1.0

    附2
    MIDlet-1: HttpWrapperMidlet,,httpwrapper.HttpWrapperMIDlet
    MIDlet-Jar-Size: 16315
    MIDlet-Jar-URL: HttpWrapper.jar
    MIDlet-Name: HttpWrapper
    MIDlet-Vendor: Vendor
    MIDlet-Version: 1.0
    MicroEdition-Configuration: CLDC-1.0
    MicroEdition-Profile: MIDP-1.0
    Which-Locale: en

    posted @ 2007-01-06 03:27 Nile Black 閱讀(417) | 評論 (0)編輯 收藏

    在GWT的文檔里說,大致上CSS的命名規則是這樣的"[project]-[widget],比如gwt-Button,你可以在CSS里定義如下:
    .gwt-Button{font-size:150%;}
    但是這樣的說明是不充分的,所以這里有必要把他真正的樣式表來列一下,以供查看。

    AbsolutePanel
    用一個DIV來實現,默認的設置了overflow:hidden。這個DIV里邊的內容可以用一個x,y坐標來確定位置。
    <div style="overflow: hidden;"></div>

    Botton
    就是一個正常的HTML的Button.默認的樣式名字是gwt-Button.
    <button class="gwt-Button"/>

    CellPanel
    用一個table來實現,沒有默認的樣式,可以設置border,cell-spacing屬性。
    <table></table>

    CheckBox
    就是正常的Html的CheckBox,默認的樣式名字為gwt-CheckBox,會自動生成一個不重復的id,checkN(N是一個整數),可以使用checked,defaultChecked,disabled等屬性。默認樣式是空的。
    <checkbox class="gwt-CheckBox">

    DeckPanel
    用一個DIV來實現,包含了一系列的子對象。每一個對象可以用單獨的display屬性來設置是否顯示。這個有點像Swing里面的CardLayout的方式有點像,添加了一系列的組件,但是只能顯示一個。
    <div style="width: 100%; height: 100%"></div>

    DialogBox
    缺省的樣式有gwt-DialogBox,Caption兩個都是相關。用一個DIV來實現,標題Caption也是一個DIV。
    <div class="gwt-DialogBox">
     <table cell-spacin="0" cell-padding="0">
      <tbody>
       <tr><td><div class="Caption">Caption</div></td></tr>
       <tr><td>Content</td></tr>
      </tbody>
     </table>
    </div>

    DockPanel
    用一個Table來實現,cell-spacin,cell-padding都默認為0,為了實現DockPanel里邊的tr,td比較麻煩一些。
    <table cell-spacing="0" cell-padding="0">
     <tbody></tbody>
    </table>

    FlexTable
    只是一個簡單的Table,沒什么特別的東西。
    <table>
     <tbody></tbody>
    </table>

    FlowPanel
    用一個DIV來實現,設定里display屬性為inline。
    <div style="display:inline;">content</div>

    FocusPanel
    只是一個DIV,重要的是它聲明了focusevents,keyevents,onclick和mouseevents,對對于那些沒有聲明的這些事件"子組件"很有用處。
    <div>content<div>

    FocusWidget
    可以是任何組件,只是它可以幫助捕獲Focusevents,keyevents。

    Frame
    是一個IFrame,他的默認的樣式是gwt-Frame
    <iframe></iframe>

    Grid
    就是一個Table
    <table><tbody></tbody></table>

    HTML
    一個DIV,默認的樣式是gwt-HTML,可以設定屬性white-space為normal,nowrap。

    HTMLPanel
    就是一個DIV,可以容納HTML或是其他組件,不適用gwt-HTML樣式。最有用的屬性就是createUniqueId,可以設定一個id,HTMLPanel_N。和前面的CheckBox的checkN,相比,這里用大寫字母和下劃線。看起來多少有點怪異。
    <div>content</div>

    HTMLTable
    沒有疑問,這是用一個Table實現的,重要的是,它是Grid,FlexTable的父類。提供了設定每行或是每一個單元格的樣式設定的方法。表格中沒有thead。假如要設定表頭的話,可能通過設定第一行的樣式來區別。
    <table><tbody></tbody></table>
    table.getRowFormtter(0).setStyleName("style");

    HorizontalPanel
    水平排列的面板,用一個只有一行的表格實現。
    <table cell-spacing="0" cell-padding="0">
     <tbody>
      <tr>
       <td style="display: static; vertical-align: top;" align="left">Item 1</td>
       <td style="display: static; vertical-align: top;" align="left">Item 2</td>
      </tr>
     </tbody>
    </table>

    HyperLink
    一個有定義了錨點的DIV,默認的樣式名:gwt-HyperLink
    <div></div>

    Image
    沒有問題,肯定是IMG.gwt-Image樣式沒有實現。
    <img src="..."/>

    Label
    一個DIV,默認的樣式是gwt-Label。Label不能解析HTML內容,假如你想要的話,可以用HTML來代替,兩者都提供鼠標事件。Label會自動換行,但是你也可以通過setWordWrap來修改。
    <div class="gwt-Label">content</div>

    ListBox
    就是用Select和Option來實現。gwt-ListBox樣式沒有被實現。可以設定selected,size,multples等屬性。

    MenuBar
    用一個包含表格的DIV實現。一個水平的菜單,只有一行,用單元格來設置菜單項,一個垂直的菜單,用行來區分菜單項。gwt-MenuBar只是設定外層的DIV的樣式。
    <div class="gwt-MenuBar">
     <table>
      <tbody>
       <tr>
        <td class="gwt-MenuItem">text or html</td>
        <td class="gwt-MenuItem">text or html</td>
       </tr>
       <!--一個垂直菜單的例子
       <tr><td class="gwt-MenuItem">text or html</td></tr>
       <tr><td class="gwt-MenuItem">text or html</td></tr>
       -->
      </tbody>
     </table>
    </div>

    MenuItem
    一個菜單項就是在菜單條中的一個單元格。它的默認屬性是gwt-MenuItem.選中的時候有一個附加的屬性,gwt-MenuItem-selected.在菜單項默認的樣式class="gwt-MenuItem",在選中的時候就改變成class="gwt-MenuItem gwt-MenuItem-selected".

    PasswordTextBox
    用Password實現,使用gwt-PasswordTextBox樣式。

    PopupPanel
    只是一個DIV.

    RadioButton
    用一個INPUT實現,使用gwt-RadioButton樣式。

    RootPanel
    一個RootPanel可以附加到任何的組件上,但是以前屬于這個組件的所有的內容都會被清除。假如你仔細想想,你會發現除了初始化之外,這個組件還有很多用處。

    ScrollPanel
    一個Div設定了overflow屬性為scroll 或auto.
    <div style="overflow: auto;">
     content
    </div>

    SimplePanel
    就是一個Div.

    StackPanel
    用一個表格來實現,每一個組用兩行來保存,第一行放了標簽,第二行放了內容。默認的這個表格使用gwt-StackPanel樣式,標簽行用了gwt-StackPanelItem和gwt-StackPanelItem-selected.當一個標簽被選中的時候,它的樣式就由原來的gwt-StackPanelItem替換成為gwt-StackPanelItem-seleted.
    <table class="gwt-StackPanel" cell-spacing="0" cell-padding="0">
     <tbody>
      <tr>
       <td class="gwt-StackPanelItem" height="1px">text/html</td>
      </tr>
      <tr>
       <td height="100%" valign="top">
        content -- a widget
       </td>
      </tr>
     </tbody>
    </table>

    TabBar
    TabBar使用一個HorizontalPanel來實現,所以它也是一個Table,表格的樣式是gwt-TabBar。對于第一個標簽,通常是一個空的,它的樣式是gwt-TabBarFirst,就是為了裝飾,最后也會加上一個空的標簽,指定樣式為gwt-TabBarRest。當一個標簽被選中的時候,gwt-TabBarItem-selected的樣式會附加到樣式中,這點和MenuItem是一樣的。
    <table class="gwt-TabBar" cell-spacing="0" cell-padding="0">
     <tbody>
      <tr>
       <td class="gwt-TabBarFirst" style="height: 100%;"><div class="gwt-HTML" style="height: 100%;">&amp;nbsp;</div></td>
       <td>Tab #1</td>
       <td>Tab #2</td>
       <td class="gwt-TabBarRest" style="width: 100%;"><div class="gwt-HTML" style="height: 100%;">&amp;nbsp;</div></td>
      </tr>
     </tbody>
    </table>

    TabPanel
    用一個VerticalPanel來實現,包含了一個TabBar和一個DeckPanel,這樣就嵌套幾層表格,樣式gwt-TabPanel用到最外層表格。gwt-TabBar用到TabBar,gwt-TabPanelBottom用到DeckPanel的DIV上了。需要注意的是TabBar獲取了width:100%樣式,這樣你就知道TabBar中的gwt-TabBarRest樣式的必要了。
    <table class="gwt-TabPanel" cell-spacing="0" cell-padding="0">
     <tbody>
      <tr>
       <td>
        <table class="gwt-TabBar" style="width: 100%;" cell-spacing="0" cell-padding="0">
         <tbody>
          <tr>
           <td class="gwt-TabBarFirst" style="height: 100%;"><div class="gwt-HTML" style="height: 100%;">&amp;nbsp;</div></td>
           <td class="gwt-TabBarRest" style="width: 100%;"><div class="gwt-HTML" style="height: 100%;">&amp;nbsp;</div></td>
          </tr>
         </tbody>
        </table>
       </td>
      </tr>
      <tr>
       <td>
        <div class="gwt-TabPanelBottom">
        </div>
       </td>
      </tr>
     </tbody>
    </table>

    TextArea
    就是一個TextArea,默認的樣式為gwt-TextArea.

    TextBox
    <input type="text" class="gwt-TextBox" />

    Tree
    就是一個包含了多個TreeItem的Div,默認樣式gwt-Tree,設定overflow:auto.
    <div class="gwt-Tree" style="overflow: auto;">
     <div style="position: relative; margin-left: 16;" (handle)>
      <table>
       <tr>
        <td></td>
        <td></td>
       </tr>
      </table>
     </div>
    </div>

    TreeItem
    用一個包含了一個表格的DIV來實現。默認的樣式gwt-TreeItem和gwt-TreeItem-selected,來修飾里面的內容。但選中的時候gwt-TreeItem-selected會替換gwt-TreeItem。這個StackPanel是一樣的。
    <div style="position: relative; margin-left: 16; white-space: nowrap" (handle)>
     <table style="white-space: nowrap;">
      <tr>
       <td style="vertical-align: middle;"><img src="tree_white.gif" /></td>
       <td style="vertical-align: middle;">content</td>
      </tr>
     </table>
     children
    </div>

    VerticalPanel
    用一個表格來實現,所有的東西按行來排列。
    <table cell-spacing="0" cell-padding="0">
     <tbody>
      <tr><td style="display: static; vertical-align: top;" align="left">Item 1</td></tr>
      <tr><td style="display: static; vertical-align: top;" align="left">Item 2</td></tr>
     </tbody>
    </table>

    參考:
    http://blogs.nubgames.com/code/?p=13

    Technorati :

    posted @ 2007-01-06 03:00 Nile Black 閱讀(5474) | 評論 (2)編輯 收藏

    2007年1月4日 #

         摘要: 在開發過程,我們不能少了版本管理,以前的cvs,現在流行的subversion,作為一個基本的工具,我們每一個人都需要熟練的掌握和使用。  閱讀全文
    posted @ 2007-01-04 15:37 Nile Black 閱讀(1875) | 評論 (1)編輯 收藏





     

    2007年你會是哪一頭豬呢?

    posted @ 2007-01-04 13:20 Nile Black 閱讀(235) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 免费不卡视频一卡二卡| 精品国产麻豆免费人成网站| 波多野结衣在线免费视频| 亚洲av鲁丝一区二区三区| 麻豆精品不卡国产免费看| 亚洲大尺度无码无码专区| 一级毛片免费毛片一级毛片免费 | 国产免费久久精品久久久| 亚洲成a∧人片在线观看无码| 香蕉高清免费永久在线视频| 理论亚洲区美一区二区三区 | 国产亚洲A∨片在线观看| 免费无码作爱视频| 亚洲人成网www| 在线观看无码AV网站永久免费| 亚洲无mate20pro麻豆| 日本免费无遮挡吸乳视频电影| 美女又黄又免费的视频| 中文字幕亚洲第一| 国产猛男猛女超爽免费视频| 亚洲福利秒拍一区二区| 男男AV纯肉无码免费播放无码| 激情婷婷成人亚洲综合| 亚洲午夜国产精品无码| www视频在线观看免费| 久久人午夜亚洲精品无码区| 狠狠亚洲狠狠欧洲2019| 国产91免费在线观看| 无码天堂va亚洲va在线va| 亚洲人成无码网站| 国产免费不卡视频| 春暖花开亚洲性无区一区二区 | 久久综合亚洲色HEZYO社区| 成人无码区免费视频观看| 免费视频成人国产精品网站| 亚洲电影中文字幕| 日韩高清免费在线观看| 色www永久免费| 亚洲Av无码国产一区二区 | 91在线亚洲综合在线| 国产91精品一区二区麻豆亚洲|