SmartGWT入門,提供出色的GWT界面

SmartGWT簡介

我最近開始使用SmartGWT ,它是一個基于GWT的框架,該框架為您的應用程序UI提供了一個全面的小部件庫,并為服務器端的數據管理提供了幫助。 您可以在SmartGWT展示柜上查看其漂亮的功能。 我準備了一個簡短的“入門”指南,介紹如何將庫與GWT項目集成(假設您已經安裝了GWT SDK和Eclipse的Google插件 )。 請注意,Smart GWT與GWT 1.5.3,GWT 1.6.4,GWT 1.7.x和GWT 2.0.x兼容。

創建GWT項目

第一步是從下載部分下載庫。 我將在本教程中使用的版本是2.1(直接從此處下載)。 解壓縮ZIP文件,并在新目錄中找到框架的文檔,一些示例,“ Hello World”示例以及必要的JAR文件。 在新的瀏覽器選項卡中打開JavaDocs 。

接下來,我們在Eclipse中創建一個新的“ Web應用程序項目”。 為項目選擇適當的名稱,并選擇適當的包裝。 確保選中“使用Google Web Toolkt”復選框(不需要Google的App Engine,因此請不要選擇該復選框)。 該向導將如下所示:

添加SmartGWT庫

創建項目框架之后,瀏覽文件系統到項目位置,然后創建一個名為“ lib”的新文件夾。 將解壓縮的ZIP中的“ smartgwt.jar”文件復制到新創建的文件夾中,并在Eclipse中刷新項目,以便新文件顯示在此處。 然后配置項目的類路徑以包含JAR文件(“項目”→“屬性”→“ Java構建路徑”→“添加JAR”…)。 到目前為止的標準東西。 Eclipse中的擴展項目應如下所示:

然后編輯模塊xml文件(名為“ SmartGWTIntroProject.gwt.xml”),并在標準“繼承”聲明之后添加以下行:

<inherits name="com.smartgwt.SmartGwt"/>

模塊xml文件將是:

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='smartgwtintroproject'>
<!-- Inherit the core Web Toolkit stuff.                        -->
<inherits name='com.google.gwt.user.User'/><!-- Inherit the default GWT style sheet.  You can change       -->
<!-- the theme of your GWT application by uncommenting          -->
<!-- any one of the following lines.                            -->
<!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     --><!-- Other module inherits                                      --><inherits name="com.smartgwt.SmartGwt"/><!-- Specify the app entry point class.                         -->
<entry-point class='com.javacodegeeks.smartgwt.client.client.SmartGWTIntroProject'/><!-- Specify the paths for translatable code                    -->
<source path='client'/>
<source path='shared'/></module>

這使GWT知道您的應用程序將使用SmartGWT庫。

更新:“ com.google.gwt.user.theme.standard.Standard”聲明應像上面一樣被刪除或注釋掉,因為它與某些SmartGWT樣式沖突。

之后,在“ war”文件夾中找到主HTML。 編輯它,并在編譯的模塊聲明之前添加以下行:

<script>var isomorphicDir="smartgwtintroproject/sc/";</script>

更新:從2.2版開始,不再需要定義isomorpihcDir值。 查看Smart GWT 2.2的發行說明 。 但是,對于本教程(使用2.1版),需要聲明。

在同一文件中,向下滾動并找到以下幾行:

<td id="nameFieldContainer"></td>
<td id="sendButtonContainer"></td>

將其替換為以下內容:

<td id="formContainer"></td>
<td id="buttonContainer"></td>

這些是將包含文本項HTML元素以及稍后將添加的按鈕。

完整HTML文件如下:

<!doctype html>
<!-- The DOCTYPE declaration above will set the    -->
<!-- browser's rendering engine into               -->
<!-- "Standards Mode". Replacing this declaration  -->
<!-- with a "Quirks Mode" doctype may lead to some -->
<!-- differences in layout.                        --><html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><!--                                                               -->
<!-- Consider inlining CSS to reduce the number of requested files -->
<!--                                                               -->
<link type="text/css" rel="stylesheet" href="SmartGWTIntroProject.css"><!--                                           -->
<!-- Any title is fine                         -->
<!--                                           -->
<title>Web Application Starter Project</title><!--                                           -->
<!-- This script loads your compiled module.   -->
<!-- If you add any GWT meta tags, they must   -->
<!-- be added before this line.                -->
<!--                                           -->
<script>var isomorphicDir="smartgwtintroproject/sc/";</script>
<script type="text/javascript" language="javascript" src="smartgwtintroproject/smartgwtintroproject.nocache.js"></script>
</head><!--                                           -->
<!-- The body can have arbitrary html, or      -->
<!-- you can leave the body empty if you want  -->
<!-- to create a completely dynamic UI.        -->
<!--                                           -->
<body><!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe><!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
<noscript>
<div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">Your web browser must have JavaScript enabled
in order for this application to display correctly.
</div></noscript><h1>
Web Application Starter Project</h1><table align="center">
<tr>
<td colspan="2" style="font-weight:bold;">Please enter your name:</td>        
</tr><tr>
<td id="formContainer"></td>
<td id="buttonContainer"></td>
</tr><tr>
<td colspan="2" style="color:red;" id="errorLabelContainer"></td>
</tr></table></body>
</html>

創建應用程序入口點

通過Eclipse創建GWT時,會創建許多自動生成的文件。 其中之一是“客戶端”包中的主要Java文件,該文件用作應用程序的入口點。 因此,刪除生成的代碼并添加以下內容:

package com.javacodegeeks.smartgwt.client.client;import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.TextItem;public class SmartGWTIntroProject implements EntryPoint {public void onModuleLoad() {final DynamicForm form = new DynamicForm();final TextItem textItem = new TextItem();textItem.setTitle("Name");form.setFields(textItem);final IButton button = new IButton("Hello");button.addClickHandler(new ClickHandler() {public void onClick(ClickEvent event) {String name = textItem.getValue().toString();SC.say("Hello " + name);}});RootPanel.get("formContainer").add(form);RootPanel.get("buttonContainer").add(button);}}

確保導入的軟件包如上所示,因為SmartGWT使用的名稱與核心GWT框架的名稱相同的類。

啟動應用程序
接下來,我們準備啟動我們的應用程序。 選擇運行? 運行為? Web應用程序并使用您喜歡的瀏覽器訪問提供的URL:

http://127.0.0.1:8888/SmartGWTIntroProject.html?gwt.codesvr=127.0.0.1:9997

您應該能夠看到以下內容:

而已。 現在您可以創建一些由SmartGWT支持的出色應用程序了。 您可以在此處找到Eclipse項目(某些文件已從項目中刪除)。

這只是有關如何將SmartGWT添加到項目中的簡短指南。 在以下文章中,我將基于SmartGWT創建一個完整的應用程序,以向您展示其一些出色的功能。 敬請關注。

相關文章 :
  • 高級SmartGWT教程,第1部分
  • 將CAPTCHA添加到您的GWT應用程序
  • 使用Spring Security保護GWT應用程序
  • GWT 2 Spring 3 JPA 2 Hibernate 3.5教程– Eclipse和Maven 2展示
  • 建立自己的GWT Spring Maven原型
  • GWT EJB3 Maven JBoss 5.1集成教程

翻譯自: https://www.javacodegeeks.com/2010/06/getting-started-smartgwt-gwt-interfaces.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374913.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android OpenGL ES(四)----調整屏幕的寬高比

1.寬高比問題 我們現在相當熟悉這樣一個事實&#xff0c;在OpenGL里&#xff0c;我們要渲染的一切物體都要映射到X軸和Y軸上[-1&#xff0c;1]的范圍內&#xff0c;對于Z軸也一樣。這個范圍內的坐標被稱為歸一化設備坐標&#xff0c;其獨立于屏幕實際尺寸或形狀。 不幸的是&…

使用Spring AOP進行面向方面的編程

面向方面的編程&#xff08;AOP&#xff09;是指將輔助功能或支持功能與主程序的業務邏輯隔離開來的編程范例。 AOP是用于分離橫切關注點的有前途的技術&#xff0c;這在面向對象的編程中通常很難做到。 以此方式增加了應用程序的模塊化&#xff0c;并且維護變得非常容易。 橫切…

面試題24 二叉搜索樹的后序遍歷序列

題目描述 輸入一個整數數組&#xff0c;判斷該數組是不是某二叉搜索樹的后序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。1 class Solution {2 public:3 bool VerifySquenceOfBST(vector<int> sequence) {4 if (seque…

習題6-5 使用函數驗證哥德巴赫猜想 (20 分)

本題要求實現一個判斷素數的簡單函數&#xff0c;并利用該函數驗證哥德巴赫猜想&#xff1a;任何一個不小于6的偶數均可表示為兩個奇素數之和。素數就是只能被1和自身整除的正整數。注意&#xff1a;1不是素數&#xff0c;2是素數。 函數接口定義&#xff1a; int prime( int…

Linux學習筆記 (六)用戶管理命令

一、用戶帳號 1、超級用戶&#xff1a;具有操作系統中的最高權限&#xff0c;用來管理和維護操作系統。root用戶。 2、普通用戶&#xff1a;由root用戶來創建&#xff0c;在宿主目錄中具有完全權限。 3、程序用戶&#xff1a;由應用程序添加&#xff0c;維護某個應用程序運行。…

使用Spring Security保護GWT應用程序

在本教程中&#xff0c;我們將看到如何將GWT與Spring的安全模塊&#xff08;即Spring Security&#xff09;集成在一起。 我們將看到如何保護GWT入口點&#xff0c;如何檢索用戶的憑據以及如何記錄各種身份驗證事件。 此外&#xff0c;我們將實現自定義身份驗證提供程序&#x…

用Fragment制作的Tab頁面產生的UI重疊問題

本文出處&#xff1a;http://blog.csdn.net/twilight041132/article/details/43812745 在用Fragment做Tab頁面&#xff0c;發現有時候進入應用會同時顯示多個Tab內容&#xff0c;UI發生重疊。 當應用被強行關閉后&#xff08;通過手機管家軟件手動強關&#xff0c;或系統為節省…

習題6-6 使用函數輸出一個整數的逆序數 (20 分)

本題要求實現一個求整數的逆序數的簡單函數。 函數接口定義&#xff1a; int reverse( int number );其中函數reverse須返回用戶傳入的整型number的逆序數。 我的代碼&#xff1a; int reverse( int number ) {int n number,res 0,t 0;n (n>0)?n:-n;while(n ! 0){t…

Tomcat 7上具有RESTeasy JAX-RS的RESTful Web服務-Eclipse和Maven項目

開發Web服務的RESTful方法不斷受到越來越多的關注&#xff0c;并且似乎正在將SOAP淘汰。 我不會討論哪種方法更好&#xff0c;但是我相信我們都同意REST更輕量級。 在本教程中&#xff0c;我將向您展示如何使用RESTeasy開發RESTful服務以及如何將它們部署在Tomcat服務器上。 在…

appcmd命令導入導出站點與應用程序池

在IIS7上導出所有應用程序池的方法: %windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml 這個命令會將服務器上全部的應用程序池都導出來,但有些我們是我們不需要的,要將他們刪掉.比如: DefaultAppPoolClassic .Net AppPool如果在導入時發現同名…

卸載apache

1、運行services.msc&#xff0c;在服務中停止 apache 服務。2、運行命令行程序&#xff0c;輸入 sc delete apache&#xff0c;刪除該服務3、刪除apache文件夾。轉載于:https://www.cnblogs.com/jiangjieqim/p/5357950.html

使用wowza和xuggler將RTMP轉換為RTSP

注意&#xff1a;這是我們的“ Xuggler開發教程 ”系列的一部分。 大家好&#xff01; 在過去的三個月中&#xff0c;我們一直在進行電話會議項目。 我們認為&#xff0c;使用諸如Flex之類的技術的基于Web的應用程序將是此類要求苛刻的項目的最佳方法。 隨著軟件的復雜性和電信…

如何設置網頁標題圖標

1、先制作一個名為favicon.ico的小圖標&#xff0c;并將其放到網站根目錄下 2、在html頁面<head></head>標簽內加入&#xff1a; <link rel"shortcut icon" href"favicon.ico" />OK轉載于:https://www.cnblogs.com/moshengr/p/4600281.h…

C語言pow函數的精度問題

&#xff08;1&#xff09;pow函數返回值是double類型 &#xff08;2&#xff09;pow原型 double pow(double x,double y); (3)sqrt原型 double sqrt(double x); 當輸出時函數值賦給整型就會出錯&#xff1a; int main()d {int N 1;scanf("%d",&N);for(int i …

習題2-1 求整數均值 (10 分)

吐槽一下&#xff0c;因為少打了一個空格&#xff0c;PTA上老是不給我過&#xff0c;還一直報結果錯誤&#xff0c;誤導我好久&#xff0c;即使是吹毛求疵&#xff0c;也應該提示我格式錯誤吧&#xff01;&#xff01; 原題&#xff1a; 本題要求編寫程序&#xff0c;計算4個整…

iframe高度自適應,終于解決了

一直被iframe的高度自適應的問題困擾著&#xff0c;在項目中也是多次遇到。網上也有不少相關的代碼&#xff0c;但是總不能滿足自己的要求。在頭痛了幾次之后終于下定決心解決這個問題。 本代碼主要解決的問題是&#xff1a;最外層滾動條隨著iframe高度動態變化的問題。如果ifr…

在領域驅動的設計,貧乏的領域模型,代碼生成,依賴項注入等方面……

埃里克埃文斯&#xff08;Eric Evans&#xff09;已制定了什么是域驅動設計&#xff08;DDD&#xff09;。 Martin Fowler是DDD的大力支持者和擁護者。 這些都是非凡的名字&#xff0c;幾乎可以肯定的是&#xff0c;他們正在支持一些有價值的東西。 我不是在這里對此爭論。 也許…

Javascript模塊化工具require.js教程

轉自&#xff1a;http://www.w3cschool.cc/w3cnote/requirejs-tutorial-1.html, http://www.w3cschool.cc/w3cnote/requirejs-tutorial-2.html 隨著網站功能逐漸豐富&#xff0c;網頁中的js也變得越來越復雜和臃腫&#xff0c;原有通過script標簽來導入一個個的js文件這種方式已…

數據值、列類型和數據字段屬性

數據值&#xff1a;數值型、字符型、日期型和空值等。數據列類型 2.1 數值類的數據列類型2.2 字符串類數據列類型 2.3 日期和時間型數據數據列類型 另外&#xff0c;也可以使用整形列類型存儲UNIX時間戳&#xff0c;代替日期和時間列類型&#xff0c;這是基于PHP的web項目中常…

全文搜索Apache Lucene簡介

在本教程中&#xff0c;我想談談Apache Lucene 。 Lucene是一個開源項目&#xff0c;提供基于Java的索引和搜索技術。 使用其API&#xff0c;很容易實現全文搜索 。 我將處理Lucene Java版本 &#xff0c;但請記住&#xff0c;還有一個名為Lucene.NET的.NET端口&#xff0c;以及…