KTable中,单元格的绘制是通过CellRenderer对象来实现的,而单元格有固定和非固定的区分,因此对应的CellRenderer对象也不一样,但是每个CellRenderer对象都有setAlignment()接口,用来设置单元格的对齐方式:
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);
 
    @Override
    /**
     * 返回指定单元格的绘制对象
     */
    public KTableCellRenderer doGetCellRenderer(int col, int row) {
        if (isFixedCell(col, row))
        {
            //设定单元格对齐方式,水平和垂直居中
            m_fixedRenderer.setAlignment(SWTX.ALIGN_VERTICAL_CENTER | SWTX.ALIGN_HORIZONTAL_CENTER);
            return m_fixedRenderer;
        }
 
        return m_textRenderer;
    }
}
 
注意:设置对齐方式时,一定要同时设置水平和垂直对齐方式,缺了任何一种都会导致程序抛出错误。

调用CellRenderersetForeground()设置前景色,也就是字体颜色。调用CellRenderersetBackground()设置背景色。