KTable的简单入门

简介:
KTable 采用的是适配器模式,因为就表现形式来说,KTable采用的是表格方式展现数据,样式基本固定,而数据来源则千差万别:ListHashMapXML文件、数据库等等,因此采用适配器模式,在数据来源和表现形式之间架起一座桥梁,使得数据可以正确的显示出来。

KTable 的用法非常简单:

@Override

public   void  createPartControl(Composite parent) {

     // 创建 Table

     table  =  new  KTable(parent, SWT. FULL_SELECTION  | SWT. MULTI  | SWT. V_SCROLL

            | SWT. H_SCROLL  | SWTX. FILL_WITH_LASTCOL  | SWTX. EDIT_ON_KEY );

   

     // 设置 Table 显示样式并显示数据

     table .setModel( new  TableDetail());

}

 

上面用两行代码就完成了一个KTable的创建与显示,其中第二行代码就是设置一个适配器对象,用来设置表现形式,生成显示数据的,代码如下:

public   class  TableDetail  extends  KTableDefaultModel {

     private   final  FixedCellRenderer  m_fixedRenderer  =  new  FixedCellRenderer(

            FixedCellRenderer. STYLE_FLAT

                    | TextCellRenderer. INDICATION_FOCUS_ROW );

 

     private   final  TextCellRenderer  m_textRenderer  =  new  TextCellRenderer(

            TextCellRenderer. INDICATION_FOCUS_ROW );

 

     public  TableDetail() {

        initialize();

    }

 

     @Override

     public  KTableCellEditor doGetCellEditor( int  col,  int  row) {

         return   null ;

    }

 

     @Override

     public  KTableCellRenderer doGetCellRenderer( int  col,  int  row) {

         if  (isFixedCell(col, row))

             return   m_fixedRenderer ;

 

         return   m_textRenderer ;

    }

 

     @Override

     public   int  doGetColumnCount() {

         return  3;

    }

 

     @Override

     public  Object doGetContentAt( int  col,  int  row) {

         switch  (col) {

         case  0:

             return   "First" ;

         case  1:

             return   "Second" ;

         default :

             return   "Third" ;

        }

    }

 

     @Override

     public   int  doGetRowCount() {

         return  3;

    }

 

     @Override

     public   void  doSetContentAt( int  col,  int  row, Object value) {

         //content.put(col + "/" + row, value);

    }

 

     @Override

     public   int  getInitialColumnWidth( int  column) {

         return  90;

    }

 

     @Override

     public   int  getInitialRowHeight( int  row) {

         return  20;

    }

 

     @Override

     public   int  getFixedHeaderColumnCount() {

         return  0;

    }

 

     @Override

     public   int  getFixedHeaderRowCount() {

         return  1;

    }

 

     @Override

     public   int  getFixedSelectableColumnCount() {

         return  0;

    }

 

     @Override

     public   int  getFixedSelectableRowCount() {

         return  0;

    }

 

     @Override

     public   int  getRowHeightMinimum() {

         return  18;

    }

 

     @Override

     public   boolean  isColumnResizable( int  col) {

         return   true ;

    }

 

     @Override

     public   boolean  isRowResizable( int  row) {

         return   false ;

    }

 

}

 

TableDetail 类继承自 KTableDefaultModel ,继承自父类的函数说明如下:

函数名称

说明

doGetCellEditor

得到指定单元格的编辑器

doGetCellRenderer

得到指定单元格的绘制器

doGetColumnCount

得到表格列数量

doGetRowCount

得到表格行数量

doGetContentAt

得到指定单元格数据,这些单元格不包括固定行、列的数据

doSetContentAt

设置指定单元格数据

getInitialColumnWidth

初始化指定列宽度

getInitialRowHeight

初始化指定行高度

getFixedHeaderColumnCount

得到标题列数量

getFixedHeaderRowCount

得到标题行数量

getFixedSelectableColumnCount

 

getFixedSelectableRowCount

 

getRowHeightMinimum

得到最小行高度

isColumnResizable

列是否允许 Resize

isRowResizable

行是否允许 Resize

 

以上这些函数作为标准接口,由 KTable 类在绘制表格的时候调用,因此需要在这些接口内根据自己的实际情况进行相应处理。





本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/326490,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
编译器 C语言 C++
1.C++入门(上)
1.C++入门(上)
|
6月前
|
编译器 Linux C语言
1.C++入门(中)
1.C++入门(中)
|
7月前
|
消息中间件 网络协议
cppzmq入门
cppzmq入门
129 2
|
设计模式 JavaScript 前端开发
js面向对象入门
js面向对象入门
76 0
|
存储 安全 小程序
c++入门(下)
c++入门(下)
|
存储 安全 编译器
【C++】C++入门-1
【C++】C++入门-1
|
存储 安全 Linux
C++11 入门
C++11 入门
120 0
C++11 入门
|
存储 安全 编译器
【C++】C++入门(下)
【C++】C++入门(下)
102 0
【C++】C++入门(下)
|
缓存 安全 网络协议
|
安全 编译器 C语言
【C++】C++ 入门(2)
【C++】C++ 入门(2)
139 0
【C++】C++ 入门(2)

热门文章

最新文章