public class YourRender extends DefaultTableCellRenderer {
    public Component getTableCellRendererComponent
       (JTable table, Object value, boolean isSelected,
       boolean hasFocus, int row, int column)
    {
        Component cell = super.getTableCellRendererComponent
           (table, value, isSelected, hasFocus, row, column);
        cell.setBackground( Color.lightGray);
        return cell;
    }}

解决方案 »

  1.   

    http://www2.gol.com/users/tame/swing/examples/SwingExamples.html
      

  2.   

    //myCellRenderer class, overwrite getTableCellRendererComponent
       class MyCellRenderer extends DefaultTableCellRenderer {
        private Color myColor;
        privateint myRow;    public MyCellRenderer(){
        }
        public void setColor(Color myColor){
          this.myColor = myColor;
        }
        public void setRow(int myRow){
          this.myRow = myRow;
        }
        public Component getTableCellRendererComponent (JTable t, Object value, 
                      boolean isSelected, boolean hasFocus,int row,int column) {
          if(this.myRow == row){
            setBackground(this.myColor);
          }
          return super.getTableCellRendererComponent(t, value, isSelected, hasFocus, row, column);
        }
      }//end of class myCellRenderer  //here is how I use to set color
      public static void main(String[] args){
        MyCellRenderer renderer = new MyCellRenderer();
        //set cell(1,1) to red
        this.setColor(renderer,1,Color.red);
        //set cell(2,1) to black
        this.setColor(renderer,2,Color.black);
      }
      public void setColor(MyCellRenderer renderer,int row,Color color){
        renderer.setRow(row);
        renderer.setColor(color);
        jTable1.getColumnModel().getColumn(1).setCellRenderer(renderer);
        jTable1.repaint();
      }  but the result is NOT cell(1,1) is red, cell(2,1) is black as that I expected. How to implement what I expect?
      

  3.   

    搞定了 :)  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(column==1&&c!=null){
            return c;
          }
          else{
            return super.getTableCellRendererComponent(t, value, isSelected, hasFocus, row, column);
          }
        }
      }