我使用了一个很大的JTable,我想为每个Class扩展CellRenderer,所以每个第二行都有一个灰色背景,以使它更具可读性。
每隔一行的灰色背景应如下所示: http://i61.tinypic.com/of3sky.png
但我仍然想要每个Class的默认对齐方式以及isSelected和hasFocus的默认设置。
背景的代码应该很简单,例如:
if(row % 2 == 0){
super.setBackground(new Color(200, 200, 200));
}
else{
super.setBackground(Color.WHITE);
}
但是如何为每个Class获取默认的CellRenderer,并以这种方式扩展它?
提前谢谢!
答案 0 :(得分:1)
来自JTable Alternate Row Background
要使JTable以不同颜色呈现每一行,您只需扩展JTable的prepareRender方法。
JTable table = new JTable(){
public Component prepareRenderer(TableCellRenderer renderer, int row, int column){
Component returnComp = super.prepareRenderer(renderer, row, column);
Color alternateColor = new Color(252,242,206);
Color whiteColor = Color.WHITE;
if (!returnComp.getBackground().equals(getSelectionBackground())){
Color bg = (row % 2 == 0 ? alternateColor : whiteColor);
returnComp .setBackground(bg);
bg = null;
}
return returnComp;
};