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 类在绘制表格的时候调用,因此需要在这些接口内根据自己的实际情况进行相应处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值