在
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
;
}
}
|
注意:设置对齐方式时,一定要同时设置水平和垂直对齐方式,缺了任何一种都会导致程序抛出错误。
调用
CellRenderer
的
setForeground()
设置前景色,也就是字体颜色。
调用
CellRenderer
的
setBackground()
设置背景色。
本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/326502,如需转载请自行联系原作者