private JTable jtableReqs = new JTable(){ DateRenderer dateRenderer = new DateRenderer(); public TableCellRenderer getCellRenderer(int row, int column) { return dateRenderer; } }; private class DateRenderer extends DefaultTableCellRenderer { public DateRenderer() { super(); } DefaultTableCellRenderer d = new DefaultTableCellRenderer(); public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ Component com = d.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (row == 0)//你要变色的行 com.setBackground(Color.red); else com.setBackground(null); return com; }
上面少了最后一个括号, DefaultTableCellRenderer d = new DefaultTableCellRenderer(); 可以删掉,并且把Component com = d.getTableCellRendererComponent(table, value, 改成Component com = super.getTableCellRendererComponent(table, value,
public Component getTableCellRendererComponent(javax.swing.JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
DateRenderer dateRenderer = new DateRenderer();
public TableCellRenderer getCellRenderer(int row, int column) {
return dateRenderer;
}
}; private class DateRenderer extends DefaultTableCellRenderer {
public DateRenderer() { super(); }
DefaultTableCellRenderer d = new DefaultTableCellRenderer();
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column){
Component com = d.getTableCellRendererComponent(table, value,
isSelected, hasFocus,
row, column);
if (row == 0)//你要变色的行
com.setBackground(Color.red);
else com.setBackground(null);
return com;
}
DefaultTableCellRenderer d = new DefaultTableCellRenderer();
可以删掉,并且把Component com = d.getTableCellRendererComponent(table, value,
改成Component com = super.getTableCellRendererComponent(table, value,
if (row % 2 == 0)
setBackground(colorDark);
else
setBackground(colorLight);
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
DateRenderer dateRenderer = new DateRenderer();
public TableCellRenderer getCellRenderer(int row, int column) {
return dateRenderer;
}
}; private class DateRenderer extends DefaultTableCellRenderer {
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);
if (row == n)//你要变色的行
com.setBackground(Color.red);
else com.setBackground(null); return com;
}
int n; public void setColor(int row, Color color){
n = row;
}
}
用法: ((DateRenderer)jtableReqs.getCellRenderer(yourow, 3)).setColor(yourow, Color.red);