你写的是getTableCellRendererComponent方法吗?
如果是,注意setBackground()之后,
super.getTableCellRendererComponent(****);

解决方案 »

  1.   

    我是借鉴yaozi的代码,谢谢!
    public class MyCellRenderer extends DefaultTableCellRenderer {
    Hashtable hashColors=new Hashtable();
    MyCellRenderer(){
    }
    public void setColor(int myRow,Color myColor){
    if(myColor!=null){
    DefaultTableCellRenderer renderers=new DefaultTableCellRenderer();
    renderers.setBackground(myColor);
    hashColors.put(""+myRow,renderers);
    }
    }
    public Component getTableCellRendererComponent (JTable t, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    DefaultTableCellRenderer c=(DefaultTableCellRenderer)hashColors.get(""+row);
    if(c!=null){
    return c;
    }
    else{
    return super.getTableCellRendererComponent(t, value, isSelected, hasFocus, row, column);
    }
    }
    }
      

  2.   

    你先试试这种思路(我自己还没有试过:)):public class MyCellRenderer extends DefaultTableCellRenderer {
    Hashtable hashColors=new Hashtable();
    public void setColor(int myRow,Color myColor){
    if(myColor!=null){
    hashColors.put(""+myRow,myColor);
    }
    }
    public Component getTableCellRendererComponent (JTable t, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    Color c=(Color)hashColors.get(""+row);
    if(c!=null){
    setBackground(c);
    }
    return super.getTableCellRendererComponent(t, value, isSelected, hasFocus, row, column);
    }
    }
      

  3.   

    to geyf(我在学java) :
    问题解决了!谢谢!