smartgwt_SmartGWT入门,提供出色的GWT界面

smartgwt

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应用程序项目”。 为项目选择适当的名称“ SmartGWTIntroProject”,并选择合适的包装。 确保已选中“使用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

smartgwt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java录入会员信息_java-第三章-升级我行我素购物管理系统,实现会员信息录入的功能...

import java.util.Scanner;public class A01 {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner input new Scanner (System.in);System.out.println("我行我素购物管理>客户信息管理>添加客户信息");Sy…

Beaglebone Back学习五(PWM测试)

PWM测试 参考链接 1 Enable PWM on BeagleBone with Device Tree overlays 2 Using PWM on the Beaglebone Black 3 Beaglebone Coding 101: Buttons and PWM 4 Using PWM outputs 5 beaglebone-black-cpp-PWM 6 Enabling PWM Support in the kernel 7转载于:https://www.cnblo…

CUBA平台的理念

最近发生了很多事。 在CUBA于6月1日正式发布之后&#xff0c;我们推出了一个新版本&#xff0c;在一些Java网站上发布了我们的第一篇文章&#xff0c;并在伦敦的Devoxx UK会议上介绍了该平台 。 但是在热潮继续之前&#xff0c;大约是时候阐明CUBA背后的哲学了。 与企业软件开…

mysql orderby多个_MySQL OrderBy

MySQL会为每个线程分配一个内存(sort_buffer)用于排序&#xff0c;该内存小大为 sort_buffer_size如果排序的数量小于 sort_buffer_size&#xff0c;排序将会在内存中完成。如果排序数据量很大&#xff0c;内存中无法存下这么多数据&#xff0c;则会使用磁盘临时文件来辅助排序…

java 双重检查锁_Java中可怕的双重检查锁定习惯用法

java 双重检查锁本文讨论的问题不是新问题&#xff0c;但即使是经验丰富的开发人员也仍然很棘手。 单例模式是常见的编程习惯用法。 但是&#xff0c;当与多个线程一起使用时&#xff0c;必须进行某种类型的同步&#xff0c;以免破坏代码。 在相关文章中&#xff0c;我们的JCG合…

mysql-bin.index找不到_MySQL不能启动 mysql-bin.index' not found (Errcode: 13)

配置复制&#xff0c;添加如下内容到/etc/my.cnf&#xff1a;log-bin/var/lib/mysql/binlogs/mysql-binmax_binlog_size100Mexpire_logs_days5sync_binlog1binlog_cache_size1Mbinlog-formatROW结果重启的时候&#xff0c;报错&#xff1a;-[root www.linuxidc.com mysql]# /et…

[ZZ] 使用rsync来实现快速删除大量文件

昨天遇到了要在Linux下删除海量文件的情况&#xff0c;需要删除数十万个文件。这个是之前的程序写的日志&#xff0c;增长很快&#xff0c;而且没什么用。这个时候&#xff0c;我们常用的删除命令rm -fr * 就不好用了&#xff0c;因为要等待的时间太长。所以必须要采取一些非常…

java 文件缓冲区_Java开发笔记(八十六)通过缓冲区读写文件

前面介绍了利用文件写入器和文件读取器来读写文件&#xff0c;因为FileWriter与FileReader读写的数据以字符为单位&#xff0c;所以这种读写文件的方式被称作“字符流I/O”&#xff0c;其中字母I代表输入Input&#xff0c;字母O代表输出Output。可是FileWriter的读操作并不高效…

Scramble String -- LeetCode

原题链接: http://oj.leetcode.com/problems/scramble-string/这道题看起来是比較复杂的&#xff0c;假设用brute force&#xff0c;每次做分割&#xff0c;然后递归求解&#xff0c;是一个非多项式的复杂度&#xff0c;一般来说这不是面试官想要的答案。这事实上是一道三维动态…

xuggler实现视频压缩_Xuggler视频处理简介

xuggler实现视频压缩注意&#xff1a;这是我们的“ Xuggler开发教程 ”系列的一部分。 随着Internet中视频的爆炸性增长&#xff0c;开发人员经常需要在其应用程序中操纵视频内容。 Xuggler是Java开发人员的免费开放源代码库&#xff0c;可用于实时解压缩&#xff0c;处理和压缩…

oledb excel java_C#中Excel 2016的oledb连接字符串

通过Office 365程序从本地安装的Office 13升级到Office 16后&#xff0c;我发生了这种情况 . 我得到了这个例外&#xff1a;Microsoft.ACE.OLEDB.12.0提供程序未在本地计算机上注册 .我无法通过Office 365安装过程找到安装驱动程序的方法 .我在App.config中的连接字符串使用它的…

位,字,字节之间关系及关联知识普及

1》 位、字、字节关系8位&#xff08;bit&#xff09;1字节&#xff08;Byte&#xff09;,1024字节1KB&#xff1b;提到了字节&#xff0c;不得不再提到“字”这个计量单位:“字”由若干个字节构成&#xff0c;字的位数叫做字长&#xff0c;字长就是说字所对应的二进制数的长度…

Android 绘制动态图

最近准备技能大赛&#xff0c;需要将从传感器中读出的数据在移动客户端以图的形式绘制出来&#xff0c;因为平时很少绘图&#xff0c;于是各种查资料&#xff0c;算是勉强做出来了。 以下是大赛理论效果图&#xff08;左&#xff09;和实际效果图&#xff08;右&#xff09;&am…

海外 谷歌 app api_Google App Engine Java功能和命名空间API

海外 谷歌 app api功能API 使用Capabilities API&#xff0c;您的应用程序可以检测特定API功能的停机和计划停机时间。 您可以使用此API来检测应用程序何时不可用&#xff0c;然后绕过它来减少应用程序的停机时间。 我们该如何处理呢&#xff1f; 1.优雅&#xff1a;创建一个…

$(document).ready() 和 window.onload 方法比较

说明 页面加载文档完毕后&#xff0c;浏览器会通过 Javascript 为 DOM 元素添加事件。 Javascript 使用 window.onload 方法&#xff0c;而 jQuery 使用 $(document).ready() 方法。 $(document).ready() 方法可以极大的提高 Web 应用程序的相应速度&#xff0c;因为该方法可以…

python在excel中查找内容_用python实现excel中查找指定字符的行信息

标签&#xff1a;print python实现 run div col with open value row 信息用python实现excel中查找指定字符的行信息strr # 字符串 or 字符filename # 文件名路径with open(filename,‘r‘) as fp:for line in fp:if strr in line:print (line.rows)将会输出ex…

使用活动记录执行CRUD

本文是我们学院课程的一部分&#xff0c;标题为jOOQ –类型安全的数据库查询 。 在SQL和特定关系数据库很重要的Java应用程序中&#xff0c;jOOQ是一个不错的选择。 当JPA / Hibernate抽象过多&#xff0c;JDBC过多时&#xff0c;这是一种替代方法。 它显示了一种现代的领域特…

java undo_用JAVA实现Undo、Redo,Copy、Paste、Cut_java

programlover原作package clipborad;import javax.swing.JTextArea;import java.awt.datatransfer.*;import java.awt.*;import javax.swing.*;import java.io.*;import javax.swing.undo.*;http://www.gaodaima.com/64851.html用JAVA实现Undo、Redo,Copy、Paste、Cut_javaimpo…

项目管理控件Project Management Library

Project Management Library是一款项目管理控件&#xff0c;包含了项目管理相关的Windows客户端控件,如&#xff1a;ProjectView, ResourcesView, ScheduleView, StatisticsView。支持所有.NET语言&#xff0c;可以用于Windows桌面应用程序,具有标准的界面和操作自定义设置、拖…

maven aspectj_使用Spring AspectJ和Maven进行面向方面的编程

maven aspectjSpring框架附带AOP支持。 实际上&#xff0c;如Spring参考文档中所述 &#xff0c; “ Spring的关键组件之一是AOP框架。 尽管Spring IoC容器不依赖于AOP&#xff0c;这意味着您不需要使用AOP&#xff0c;但AOP是对Spring IoC的补充&#xff0c;以提供一种功能强…