Swing开发过程中,经常使用表格,添加数据时,为了美观,每行都有序号,假设我们定义的表格为myTable:
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
/**
* 表格第一列,序号突出显示
* @author phx
*
*/
public class RowHeadRender extends JLabel implements TableCellRenderer {
private static final long serialVersionUID = -77608456654644254L;
public RowHeadRender(JTable table) {
JTableHeader header = table.getTableHeader();
setOpaque(true);//是否是不透明的
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
setHorizontalAlignment(CENTER);
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
setText(value == null ? "" : value.toString());
return this;
}
}
在初始化表格时,设置table.getColumnModel().getColumn(0).setCellRenderer(new RowHeadRender(myTable));,则第一列就可以突出显示了