`
董瑞龙
  • 浏览: 106901 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

GXT组件使用教程1——Basic Grid

阅读更多

GXT组件使用教程1——Basic Grid

 

此系列不是从新建一个项目开始。学习此教程的人应该有能力通过查资料完成GWT同EXT结合并构建项目,若是从零开始的网友请参见:

Quick Setup for Ext GWT 2.X

===========================

 

Note : Ext GWT 2.X requires GWT 1.6.x or GWT 2.0 (any build ending in "-gwt2.zip"). 

 

STEP 1 -> Create a GWT 1.6.x project within Eclipse.

 

Copy the contents of the /resources folder in the download to a {foldername} location with your war folder.

Substitute {foldername} with the name of the folder you've created for resources within your war folder. 

 

STEP 3 -> Add the following stylesheet to your host page.

 

<link rel="stylesheet" type="text/css" href="{foldername}/css/gxt-all.css" />

 

STEP 3b -> If you are using Charts, add the following script to your host page.

 

<script language='javascript' src='{foldername}/flash/swfobject.js'></script>

 

STEP 4 -> Add the following entry to you projects module xml file.

 

<inherits name='com.extjs.gxt.ui.GXT'/>

 

STEP 5 -> Ext GWT requires the following doctype (quirksmode).

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 

STEP 6 -> Eclipse Setup (should be similar for other development environments)

These instructions assume you have a existing project and launch configuration.

 

1. Add gxt.jar to the project.

a. Right click on project name in 'Package Explorer'.

b. Select 'Properties' from content menu.

c. Select 'Java Build Path'.

d. Select 'Libraries' tab.

e. Add the gxt.jar either with 'Add JARs...' or 'Add External JARs...'.

 

2. Add GXT jar to launch configuration.

a. Choose Run / Open Run Dialog.

b. Select your appropriate launch configuration under 'Java Application'.

c. Select the 'Classpath' tab.

d. Add the gxt.jar to the classpath.

============================

言归正传,首先看一下例子截图



 表格是gxt企业级开发经常使用的控件,学习gxt官方提供的控件,阅读源码是非常有效方法。很多开发灵感是可以从控件中找到的。

查看源码:

构建一个基本表格,第一步创建列配置:ColumnConfig

 

// 创建一个list 用于存放列的配置,一个配置列对应一个列
  List<ColumnConfig> configs = new ArrayList<ColumnConfig>();  
  
    ColumnConfig column = new ColumnConfig();  
// 此处的"name" 可以去除加载model中以"name"为key的值
    column.setId("name");  
// 显示在此列的名称
    column.setHeader("Company");  
//这列的宽度
    column.setWidth(200);  
// 将这列放到list中
    configs.add(column);  
  // column 也可以通过构造 colum = new column("key","displayName",width)
    column = new ColumnConfig();  
    column.setId("symbol");  
    column.setHeader("Symbol");  
    column.setWidth(100);  
    configs.add(column);  
  
    column = new ColumnConfig();  
    column.setId("last");  
    column.setHeader("Last");  
    column.setAlignment(HorizontalAlignment.RIGHT);  
    column.setWidth(75);  
    column.setRenderer(gridNumber);  
    configs.add(column);  
  
    column = new ColumnConfig("change", "Change", 100);  
    column.setAlignment(HorizontalAlignment.RIGHT);  
    column.setRenderer(change);  
    configs.add(column);  
  
    column = new ColumnConfig("date", "Last Updated", 100);  
    column.setAlignment(HorizontalAlignment.RIGHT);  
    column.setDateTimeFormat(DateTimeFormat.getShortDateFormat());  
    configs.add(column);  

 第二步声明store 并加载上数据

 

// 表格最常用的store
ListStore<Stock> store = new ListStore<Stock>();  
// 为store加上数据,TestData可在gxt源码找到
    store.add(TestData.getStocks());  

 TestData.getStocks()

 

 //返回的只是一个简单的list
public static List<Stock> getStocks() {
    List<Stock> stocks = new ArrayList<Stock>();

    stocks.add(new Stock("Apple Inc.", "AAPL", 125.64, 123.43));
    stocks.add(new Stock("Cisco Systems, Inc.", "CSCO", 25.84, 26.3));
    stocks.add(new Stock("Google Inc.", "GOOG", 516.2, 512.6));
    stocks.add(new Stock("Intel Corporation", "INTC", 21.36, 21.53));
    stocks.add(new Stock("Level 3 Communications, Inc.", "LVLT", 5.55, 5.54));
    //...
    stocks.add(new Stock("First Data Corporation", "FDC", 32.7, 32.65));
    return stocks;
  }

 Stock.class 源码

 

// BaseModel是我最常用的model
public class Stock extends BaseModel {

  public Stock() {
  }

  public Stock(String name, String symbol, double open, double last) {
    // "name"就是存储model的key.前面的 column.setId("key");就是与这        
    //里对应
    set("name", name);
    set("symbol", symbol);
    set("open", open);
    set("last", last);
    set("date", new Date());
    set("change", last - open);
  }

  public Stock(String name, double open, double change, double pctChange, Date date, String industry) {
    set("name", name);
    set("open", open);
    set("change", change);
    set("percentChange", pctChange);
    set("date", date);
    set("industry", industry);
  }

 

 第三步构建表格

 

// 构造函数需加上 store 和 含有ColumnConfig 的list : cm
Grid<Stock> grid = new Grid<Stock>(store, cm);  
// 设置显示属性: css属性名称  属性值
    grid.setStyleAttribute("borderTop", "none");
// 列都是固定宽度,设置某一列自动填充剩余空间  
    grid.setAutoExpandColumn("name");  
    grid.setBorders(true);  
    grid.setStripeRows(true);    

 

第四步美化表格

 

// 设置数字格式
final NumberFormat currency = NumberFormat.getCurrencyFormat();  
    final NumberFormat number = NumberFormat.getFormat("0.00");  
    final NumberCellRenderer<Grid<Stock>> numberRenderer = new NumberCellRenderer<Grid<Stock>>(  
        currency);  
// 重写表格加载数据时的动作
    GridCellRenderer<Stock> change = new GridCellRenderer<Stock>() {  
      public String render(Stock model, String property, ColumnData config, int rowIndex,  
          int colIndex, ListStore<Stock> store, Grid<Stock> grid) {  
        double val = (Double) model.get(property);  
        String style = val < 0 ? "red" : "green";  
        return "<span style='color:" + style + "'>" + number.format(val) + "</span>";  
      }  
    };  
  
// 对单元格进行格式设置
    GridCellRenderer<Stock> gridNumber = new GridCellRenderer<Stock>() {  
      public String render(Stock model, String property, ColumnData config, int rowIndex,  
          int colIndex, ListStore<Stock> store, Grid<Stock> grid) {  
        return numberRenderer.render(null, property, model.get(property));  
      }  
    };  

 

注意事项:

 

  1. 表格可能没有数据,将表格的高度设置一下例如 grid.setSize(800,600); 试试
  2. 很多时候我们可以直接复制官方提供的例子的源码。
  3. 项目源码请参见附件
  • 大小: 15.9 KB
分享到:
评论
5 楼 zzz078 2012-01-13  
好好好!!谢谢了!研究研究.
4 楼 董瑞龙 2011-09-02  
261667318 写道
请问楼主,源码中的ContentPanel对象cp怎么加icon.加了samples文件夹还是不能用cp.setIcon(Resources.ICONS.table());方法。谢谢  

http://rylan.iteye.com/blog/1164348
3 楼 董瑞龙 2011-09-02  
hejijiang 写道
怎么用了不对呢?

怎么不对?有什么报错信息吗?
2 楼 hejijiang 2011-09-01  
怎么用了不对呢?
1 楼 261667318 2011-08-18  
请问楼主,源码中的ContentPanel对象cp怎么加icon.加了samples文件夹还是不能用cp.setIcon(Resources.ICONS.table());方法。谢谢  

相关推荐

    GXT组件使用教程4——Aggregation Grid

    在本文中,我们将深入探讨GXT组件的使用,特别是关于Aggregation Grid的教程。GXT是Sencha提供的一款强大的JavaScript库,专为构建企业级Web应用程序而设计,它提供了丰富的UI组件和数据网格功能。Aggregation Grid...

    GXT组件使用教程2——Auto Height Grid

    标题“GXT组件使用教程2——Auto Height Grid”指的是一个关于如何在GXT应用中实现自动高度调整的表格网格组件的教学。这个功能允许表格根据其内容自动调整高度,无需开发者手动设置固定的高度值。这对于显示不确定...

    GXT组件使用教程3——Column Group

    在本文中,我们将深入探讨GXT组件的使用,特别是关于"Column Group"的功能。GXT,全称为Ext GWT(Google Web Toolkit的扩展),是一个强大的Java库,用于创建丰富的、高性能的JavaScript应用程序。它提供了大量的UI...

    GXT组件使用教程

    **标题:“GXT组件使用教程”** GXT(Ext GWT)是Sencha公司开发的一个强大的JavaScript库,用于构建富互联网应用程序(Rich Internet Applications,RIAs)。它基于Google的GWT(Google Web Toolkit),提供了丰富...

    gxt初学进阶教程

    在Eclipse中创建GWT项目和配置相关的组件,以便在项目中使用GXT组件。过程包括: 1. 使用File | New | Project创建新的项目。 2. 选择Google目录下的WebApplicationProject作为项目类型。 3. 输入项目名称和包基础...

    GXT v2.2.1 API doc

    1. **GXT组件和API** GXT提供了大量的组件,如表格(Grid)、树(Tree)、表单(Form)、菜单(Menu)等。API文档详细介绍了这些组件的创建、配置和使用方法,包括它们的属性、事件和方法。开发者可以通过查阅文档...

    gxt、gwt与spring结合使用

    1. **依赖注入(DI)**:Spring可以通过DI将GXT或GWT的组件实例化并注入到其他类中,减少了代码中的硬编码,增强了灵活性和可扩展性。 2. **服务代理(Service Proxy)**:GWT的远程服务调用(RPC)机制可以与...

    Gxt_BLOG(GXt项目)

    1. **GXT组件库**:GXT包含了大量的UI组件,如按钮、表单、面板、菜单、对话框等,这些都是基于GWT的原生元素封装的。开发者可以通过这些组件快速构建界面,无需从零开始编写HTML和CSS代码。 2. **数据网格(Data ...

    GXT 软件包和API

    1. **GXT与ExtJS的关系** GXT最初是对ExtJS的一个Java实现,ExtJS是一个用JavaScript编写的前端框架,而GXT则是将这些组件和功能转化为Java代码,使得开发人员可以在Java环境中进行工作,利用GWT的编译机制,生成...

    GXT 学习的好书

    - **数据表格**:详细介绍如何使用Grid组件展示和操作数据。 - **远程数据服务**:实现客户端与服务器之间的数据交互。 4. **高级特性** - **自定义组件**:教授如何根据需求定制特定的UI组件。 - **图表与可视...

    gxt-api-2.2.5 doc

    1. **组件库**:GXT提供了大量的UI组件,如表格(Grid)、树形视图(Tree)、菜单(Menu)、对话框(Dialog)等,这些组件在设计上遵循了MVC模式,易于定制和扩展。 2. **数据绑定**:GXT支持双向数据绑定,使得...

    浪曦原创]GXT系列+第1讲+GXT_GWT的安装.

    浪曦原创]GXT系列+第1讲+GXT_GWT的安装.

    Gxt,包含resource

    GXT提供了丰富的组件、数据绑定、布局管理以及主题定制等功能,让开发者能够利用Java语言开发出具有桌面应用级别的用户体验的Web应用。 "包含resource"这部分意味着压缩包中可能包含了GXT库的资源文件,这些文件...

    gwt gxt demo

    总的来说,"gwt gxt demo" 项目可能涵盖了GWT和GXT的许多核心特性,如组件库的使用、Java到JavaScript的编译、异步RPC通信以及客户端-服务器的数据交换。这个项目为学习和理解GWT和GXT的结合使用提供了一个实战平台...

    GXT MVC design

    标题 "GXT MVC设计" 指向的是一个关于使用GXT(Google Web Toolkit Extensions)进行Model-View-Controller(MVC)架构设计的主题。GXT是Google Web Toolkit(GWT)的一个扩展库,提供了丰富的用户界面组件和高级UI...

    GXT的JAR包

    GXT(Ext GWT)是Sencha公司推出的一个强大的JavaScript库,专为构建富互联网应用程序(RIA)设计,尤其在企业级应用中广泛使用。它基于Google的GWT(Google Web Toolkit),允许开发者使用Java语言编写客户端代码,...

    gxt-1.2.3.jar.zip

    1. **组件库**:GXT提供了一套完整的组件集合,包括数据视图、表格、树、网格、图表、菜单、工具栏等,这些组件都具有高度可定制化,可以根据项目需求调整样式和行为。 2. **数据绑定**:GXT支持数据模型与视图的...

    一步一步教你新建GXT项目

    本教程将详细指导你如何一步步地创建一个新的GXT项目。 首先,确保你已经安装了以下必备工具: 1. **Java Development Kit (JDK)**:GXT和GWT基于Java开发,所以你需要安装JDK,并设置好`JAVA_HOME`环境变量。 2. *...

    gxt初学进阶

    - 使用图表组件展示数据分析结果。 - **定制化应用** - 根据特定需求快速构建自定义界面。 #### 六、结论 通过本文的学习,我们可以了解到GWT和ExtGWT的基本概念以及如何搭建开发环境。对于Java开发者来说,使用...

Global site tag (gtag.js) - Google Analytics