1.按钮加事件监听器 2.点击按钮,触发事件,重写DefaultTableCellRenderer中的getTableCellRendererComponent方法 3.根据选中行的index,改变背景色关键代码如下 jTable.setDefaultRenderer(Object.class, new MyCellRenderer()); class MyCellRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = 1L; private final Color ec = new Color(255, 255, 204); public Component getTableCellRendererComponent( JTable table, Object data, boolean isSelected, boolean hasFocus, int row, int column) { if (row==selectedIndex) { setBackground(ec); } setText((String) data); return this; } }
2.点击按钮,触发事件,重写DefaultTableCellRenderer中的getTableCellRendererComponent方法
3.根据选中行的index,改变背景色关键代码如下 jTable.setDefaultRenderer(Object.class, new MyCellRenderer()); class MyCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
private final Color ec = new Color(255, 255, 204);
public Component getTableCellRendererComponent(
JTable table, Object data, boolean isSelected, boolean hasFocus, int row, int column) {
if (row==selectedIndex) {
setBackground(ec);
}
setText((String) data);
return this;
}
}
setBackground(ec);
} 当然你可以把这些行号装在容器中,比如list,array,
然后改变一下写法if (list.contains(row)) {
setBackground(ec);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column){
Component com =super.getTableCellRendererComponent(table, value,
isSelected, hasFocus,
row, column);
for(int i=0;i<selectRows.length;i++)
if (selectRows[i]==row)//你要变色的行
{ com.setBackground(Color.red);
break;}
return com;
}
}
selectRows=listTable.getSelectedRows();
listTable.setDefaultRenderer(Object.class,new DateRenderer());
我的代码是这样写的,但是执行完一次,在行上直接单击行也变色,不知道什么原因