实际上是选择了的,因为自定义的cell渲染导致看不出来row被选中。可以通过isSelected为选定行的全部或部分单元格设置特殊的渲染,以显示哪行被选中了。
protected void setDefaultRenderer(){
setDefaultRenderer(Object.class, new DefaultTableCellRenderer(){
//设置单元格内容居中
public void setHorizontalAlignment(int alignment){
super.setHorizontalAlignment(CENTER);
}
//设置单元格渲染
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (table == null) {
return this;
}
Color bg;
Color fg;
if (column == 0) { //设置第一列的颜色
bg = new Color(0xFFFFE0);
fg = Color.BLACK;
} else if (column > 0 && column <= DataConstants.COLUMNS_2) { //设置第一区域的颜色
//某些单元格的颜色