- 浏览: 371423 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (148)
- java (89)
- flex (7)
- sns (3)
- jquery mobile gwt html5 (1)
- VirtualBox Centos 安装 (2)
- tomcat (1)
- nginx (2)
- centOS (7)
- memcache (2)
- hadoop (3)
- hbase (3)
- install (1)
- cloudera (3)
- tools (0)
- gen code (0)
- Mysql (2)
- KinderEditor (1)
- flash chart (1)
- ntsysv (1)
- hibernate search (2)
- compass (1)
- lucence (2)
- hibernate (1)
- jboss cache (0)
- 二级缓存 (1)
- maven (1)
- debian (1)
- go (1)
- golang (2)
- html5 (1)
最新评论
-
llh1985:
wave牛人~~求联系~~~邮箱llh1985@163.com ...
GWT Wave 开源代码运行跑通分析(1) -
zhengliming123:
[img][img][*][*][/flash][*]|[/i ...
hibernate Search 学习研究 附件是maven工程 -
di1984HIT:
写得很嗯好啊。
CentOS 安装 hadoop hbase 使用 cloudera 版本。(一) -
itfanr:
楼主写的真好 本地godoc
Golang 1.0 文档使用。godoc ,go 命令 学习 ,本地运行 gotour -
phe441:
灰常感谢楼主,爱死你了
URL rewrite 3.2 jar 和 文档 pdf 下载
GWT demo中的分页研究.
Mail 类是主要的模块.
private MailList mailList; 是分页所需要的主要的类.
public class MailList extends Composite implements ClickHandler {
MailList下面有一个
private FlexTable table = new FlexTable ();
是用来动态显示分页数据的类.
private HorizontalPanel navBar = new HorizontalPanel ();
navBar是用来显示 [上一页][下一页] 这样的信息的.
public MailList() { // Setup the table. table.setCellSpacing(0); table.setCellPadding(0); table.setWidth("100%"); // Hook up events. table.addClickHandler(this); newerButton.addClickHandler(this); olderButton.addClickHandler(this); // Create the 'navigation' bar at the upper-right. HorizontalPanel innerNavBar = new HorizontalPanel(); navBar.setStyleName("mail-ListNavBar"); innerNavBar.add(newerButton); innerNavBar.add(countLabel); innerNavBar.add(olderButton); navBar.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT); navBar.add(innerNavBar); navBar.setWidth("100%"); initWidget(table); setStyleName("mail-List"); initTable(); update(); }
在构造函数里面进行数据的初始化.
因为MailList实现了ClickHander.所以属性添加监听的时候可以添加this
table.addClickHandler(this); newerButton.addClickHandler(this); olderButton.addClickHandler(this);
其实在
public void onClick(ClickEvent event) { Object sender = event.getSource(); if (sender == olderButton) {
方法里面进行判断.是那个按钮发出的相应然后在做处理.
可以从Event中得到发出响应的部件的类.
然后就可以进行事件处理了..
仿照这个自己写了一个类:
private Button firestButton = new Button("首页"); private Button previousButton = new Button("上一页"); private Button nextButton = new Button("下一页"); private Button lastButton = new Button("末页"); private Button jumpButton1 = new Button(); private Button jumpButton2 = new Button(); private Button jumpButton3 = new Button(); private Button jumpButton4 = new Button(); private Button jumpButton5 = new Button(); private int startRow, endRow = 0; private int totalRows = 100; private int maxRows = 10; private HTML showPageInfo = new HTML("", true); /* 设置分页显示的信息. */ private FlexTable dateTable = new FlexTable(); /* 数据存放的table */ private VerticalPanel mainPanel = new VerticalPanel(); /* 主要窗体. */ private HorizontalPanel jumpPanel = new HorizontalPanel(); public UserPageList() { mainPanel.setWidth("100%");/* 设置显示100% */ dateTable.setCellSpacing(0); dateTable.setCellPadding(0); dateTable.setWidth("100%"); dateTable.setBorderWidth(1);/* 添加一个border=0 */ /* 为按钮添加时间相应. */ dateTable.addClickHandler(this); firestButton.addClickHandler(this); previousButton.addClickHandler(this); nextButton.addClickHandler(this); lastButton.addClickHandler(this); jumpButton1.addClickHandler(this); jumpButton2.addClickHandler(this); jumpButton4.addClickHandler(this); jumpButton5.addClickHandler(this); /* 设置按钮条. */ HorizontalPanel navBar = new HorizontalPanel(); HorizontalPanel innerNavBar = new HorizontalPanel(); navBar.setStyleName("mail-ListNavBar"); innerNavBar.add(showPageInfo); innerNavBar.add(firestButton); innerNavBar.add(previousButton); innerNavBar.add(jumpPanel); innerNavBar.add(nextButton); innerNavBar.add(lastButton); /* 添加按钮. */ navBar.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT); navBar.add(innerNavBar); navBar.setWidth("100%"); mainPanel.add(dateTable); mainPanel.add(navBar); setWidget(mainPanel); setWidth("700px"); setText("用户分页演示.");// 并不是setTitle设置标题. initTable(); } public void onClick(ClickEvent event) {/* 分页事件添加. */ Object obj = event.getSource(); if (firestButton == obj) {/* 第一页. */ startRow = 0; endRow = startRow + maxRows; initTable(); } else if (previousButton == obj) {/* 前一页 */ startRow -= maxRows; if (startRow < 0) { startRow = 0; } endRow = startRow + maxRows; initTable(); } else if (nextButton == obj) {/* 下一页 */ if (!(startRow + maxRows >= totalRows)) { startRow += maxRows; endRow = startRow + maxRows; } initTable(); } else if (lastButton == obj) {/* 末页. */ endRow = totalRows; startRow = totalRows - maxRows; if (startRow < 0) { startRow = 0; } initTable(); } else if (jumpButton1 == obj) { jumpPage(-2); } else if (jumpButton2 == obj) { jumpPage(-1); } else if (jumpButton4 == obj) { jumpPage(1); } else if (jumpButton5 == obj) { jumpPage(2); } } private void initTable() { // Create the header row. if (startRow == 0 && endRow == 0) { endRow = maxRows; } /* 设置标题. */ dateTable.setText(0, 0, "ID"); dateTable.setText(0, 1, "用户名"); dateTable.setText(0, 2, "邮编"); dateTable.setText(0, 3, "其他"); int j = 1; for (int i = startRow; i < endRow; ++i) {/* 随机填入数据.将数据放到dataTable里面. */ dateTable.setText(j, 0, "aa" + i); dateTable.setText(j, 1, "aa" + Random.nextInt()); dateTable.setText(j, 2, "bb" + Random.nextInt()); dateTable.setText(j, 3, "cc"); j++; } showPageInfo.setHTML("开始:\t" + startRow + "记录\t结束:\t" + endRow + "记录");/* * 更新显示信息. */ int currentPage = (startRow / maxRows) + 1; int maxPage = (totalRows / maxRows) ; System.out.println("currentPage:\t"+currentPage+"\tmaxPage:\t"+maxPage); for (int i = 0; i < jumpPanel.getWidgetCount(); i++) { jumpPanel.remove(i); } if ((currentPage - 2) >= 1) { jumpButton1.setText("" + (currentPage - 2)); jumpPanel.add(jumpButton1); System.out.print("\t"); System.out.print(currentPage - 2); } if ((currentPage - 1) > 1) { jumpButton2.setText("" + (currentPage - 1)); jumpPanel.add(jumpButton2); System.out.print("\t"); System.out.print(currentPage - 1); } jumpButton3.setText("" + currentPage); jumpPanel.add(new Button("" + currentPage)); System.out.print("\t"); System.out.print(currentPage); if ((currentPage + 1) < maxPage) { jumpButton4.setText("" + (currentPage + 1)); jumpPanel.add(jumpButton4); System.out.print("\t"); System.out.print(currentPage + 1); } if ((currentPage + 2) <= maxPage) { jumpButton5.setText("" + (currentPage + 2)); jumpPanel.add(jumpButton5); System.out.print("\t"); System.out.print(currentPage + 2); } System.out.println(); } private void jumpPage(int pageNo) { int currentPage = (startRow / maxRows) + 1; System.out.println("pageNo:\t" + pageNo + "currentPage:\t" + currentPage); startRow = startRow + (maxRows * pageNo); endRow = startRow + maxRows; initTable(); }
如图显示.目前这个还有一个小的bug.
在分页点击的时候.后台显示的是正确的.但是页面的组件有的时候会多出来几个button.
好像是没有清除掉该删除的东西.
还得仔细研究下呢.
附件是代码.
在添加上数据库操作就是一个ajax的分页了.这样开发一个分页.一个ajax的效率还是挺快的.
基本上是没有去弄那个麻烦的javascript.
速度也还是挺快的.想要看看什么类下面的方法都是很方便的呢.
发表评论
-
在CSDN上面也开通了博客
2013-02-27 22:41 906在CSDN上面也开通了博客 CSDN 现在发布文章 ... -
resin 服务器学习 配置 单点和 集群
2011-12-08 00:45 2064使用的 resin 4 服务器 ... -
CentOS 安装 Memcache 服务器. java 做客户端.
2011-11-07 18:35 37051,下载安装第三方源: CentOS 6 或 R ... -
CentOS rpm 安装 java 环境 tomcat nginx.
2011-11-03 19:17 7494首先测试更新. yum update ... -
android 源文件 zip包下载.地址
2011-06-20 15:19 1877android 源文件 zip包下载. 网络上面提供了 ... -
读取 jpa 的配置文件.添加自己的属性.
2011-06-15 16:03 1795package com.freewebsys.sns.c ... -
构建富客户端程序 GWT2.3 + Guice3.0 + hibernateJPA 程序代码
2011-05-05 11:44 1596构建富客户端程序 GWT2.3 + Guice3.0 + ... -
Guice 3.0 学习 persist jpa
2011-03-18 17:39 1536guice 3.0 的 persist 实现 使用的是 ... -
自己弄 开源 CMS 内容发布系统 主要表设计。
2011-03-10 11:34 3838--CMS栏目表 CREATE TABLE ... -
坚信 Debian是比Ubuntu更稳定的操作系统
2011-03-07 14:28 2304坚信 Debian是比Ubuntu更稳定的操作系统 自 ... -
eclipse 3.6 sp2 减肥记录
2011-03-04 09:46 1668喜欢 eclipse 但是 发现 eclipse 的功能很多 ... -
记录 2010 01 12 开始 给 自己 2 年 的时间 去弄 一个 gwt sns
2011-01-13 12:57 1313记录 2010 01 12 开始 给 自己 2 ... -
mac os x86 下 intel 无限驱动下载
2011-01-09 10:45 1413是在 googlecode 的项目 http://co ... -
Macos 下面 开源软件 下载
2011-01-06 16:06 1893macos 常用 软件 下载 macos 官方网站下载 ... -
Ubuntu 更新文件 桌面 菜单丢失, 打算 换 mac os
2011-01-04 11:32 2023ubuntu 是 2009 年 安装 ... -
做 一个 sns 的项目 考虑 使用 GWT 做 前台 后台 spring hibernate 如何 ?
2010-12-27 12:48 1466做 一个 sns 的项目 考虑 使用 GWT 做 前台 后台 ... -
Goolge appengine 又可以用了。高兴啊。。
2010-12-15 09:37 739突然想访问下自己的应用。 发现 自己的 appengi ... -
将google app engine 进行 本地化 可写文件 创建线程 去除白名单
2010-12-10 17:36 1912最近 看到 appgeng 被 ... -
设计 一个 oa 当中 的日历显示 跳转 上月 下月
2010-12-01 13:36 1350主要就是利用 java的Calendar 类 ... -
设计实现 一个 基于extjs2.0 做皮肤的 struts2 样式
2010-11-29 14:37 1815想法在 一年前 产生的。 首先使用 extjs2.0 ...
相关推荐
3. **服务端入口点**:在`gwt-servlet-2.3.0.jar`中,`com.google.gwt.user.server.rpc.RemoteServiceServlet`是主要的入口点,它继承自`javax.servlet.http.HttpServlet`,实现了对GWT RPC请求的处理。 4. **安全...
gwt-benchmark-viewer.jar
标题中的"gwt-windows-1.4.60.zip"可能是一个GWT的发行版本,适用于Windows操作系统,版本号为1.4.60。这个压缩包可能包含了GWT库的所有组件,包括开发者需要的JAR文件、文档、示例代码以及其他必要的资源,使得...
5. **异步通信**:GWT支持AJAX技术,使得Web应用能够实现页面无刷新的交互体验,通过`com.google.gwt.user.client.rpc.RPC`服务进行服务器端调用。 6. **开发工具**:GWT提供了一个强大的集成开发环境(IDE)插件,...
gwt-servlet-1.4.61.jar
the Gwt Developer Plugin For Firefox
《Apress.Accelerated.GWT.Building_Enterprise.Google.Web.Toolkit.Applications.May.2008.pdf》这本书籍,很可能是该主题的详细教程,涵盖了以上所有内容,对于想要掌握GWT技术并开发高质量企业应用的开发者来说,...
gwt-dev-windows.jar 大小:9.60 MB
Manning.GWT.in.Practice.Apr.2008
通过研究源码,我们可以学习到GWT如何将Java代码编译成JavaScript,以及它是如何处理事件、异步通信和UI渲染的。这有助于开发者在遇到问题时进行调试,同时也能为自定义功能和性能优化提供可能。 ### 2. 开发工具 ...
gwt-windows-1.7.1.zip samplesgwt-windows-1.7.1.zip samplesgwt-windows-1.7.1.zip samplesgwt-windows-1.7.1.zip samples
开发者插件则是用于支持GWT开发环境的重要工具,它允许在浏览器中直接运行和调试GWT应用。 描述 "gwt developer plugin" 明确了我们讨论的是GWT的开发者插件,这是一个用于提升GWT项目开发效率的工具。通常,这个...
gwt-2.7.0.part2.rar 官网下载最新版,提供给大家使用
标题 "org.liveSense.sample.gwt.notes-1.0.5.zip" 暗示这是...通过深入研究这些知识点,开发者可以更好地理解和利用 "org.liveSense.sample.gwt.notes-1.0.5.zip" 提供的功能,同时也能提升在GWT和Solr开发上的技能。
gwt-servlet.jar 大小:701 KB The GWT Servlet Library supports the ...
标题 "Packt.Google.App.Engine.Java.and.GWT.Application.Development.Source.Code" 暗示了这是一个关于使用Java和GWT在Google App Engine上开发应用程序的源代码包。这为我们提供了几个关键知识点: 1. **Google ...
gwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zip
in.cypal.studio.gwt.samples_1.0.0.200808282244.jar