DefaultTableCellRenderer 自定义

方式一:

1 DefaultTableCellRenderer render = new DefaultTableCellRenderer();
2 render.setHorizontalAlignment(SwingConstants.CENTER);
3 render.setForeground(Color.WHITE);
4 for (int i = 0; i < HEADER_ITEM.length; i++) {
5             tableData.getColumn(HEADER_ITEM[i]).setCellRenderer(render);
6 }

方式二:

 1 for (int i = 0; i < HEADER_ITEM.length; i++) {
 2      tableData.getColumn(HEADER_ITEM[i]).setCellRenderer(new DefaultTableCellRenderer() {
 3           public void setValue(Object value) {
 4                  setForeground(Color.WHITE);
 5                  setText((value == null) ? "" : value.toString());
 6                  setHorizontalAlignment(SwingConstants.CENTER);
 7           }
 8 
 9      });
10 }

方式一和方式二在展现表格效果上没什么区别,区别在于给表格添加选中行的背景色时

tableData.setSelectionBackground(Color.RED);

方式一种表格内容会被背景色所覆盖,这时采用方式二就会正常显示。

原文地址:https://www.cnblogs.com/lzy1991/p/5752346.html