表格的各个行的颜色要不一样,怎么样设置,高分求解。

解决方案 »

  1.   

    设置行的颜色,不是设置整个table的颜色
      

  2.   

    public void setRender()
        {
            if (renderer == null)
                renderer = new MyRenderer();
            TableColumnModel columModel = this.getColumnModel();
            int len = getColumnCount();
            for (int i = 0; i < len; i++)
            {
                TableColumn column = columModel.getColumn(i);
                column.setCellRenderer(renderer);
            }
            repaint();
        }
    private class MyRenderer extends DefaultTableCellRenderer
        {
            public Component getTableCellRendererComponent(JTable table,
                    Object value,
                    boolean isSelected, boolean hasFocus, int row, int column)
            {
                Component comp = super.getTableCellRendererComponent(table, value,
                        isSelected, hasFocus, row, column);
                Color color = getMyColor(row);//根据flag不同,返回不同颜色
                if (color != null && isSelected != true)
                    comp.setBackground(color);
                return comp;
            }
        }
      

  3.   

    TableColumnModel model = table.getColumnModel();
     
         int n = headerStr.length;  //headerStr是表头的长度
         for (int i=0;i<n;i++) {
            model.getColumn(i).setCellRenderer(tcr);
         }     DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
            public Component getTableCellRendererComponent(JTable table,
                      Object value, 
                      boolean isSelected, 
                      boolean hasFocus,
                      int row, 
                      int column) {
         //
            if(row==1){
            setBackground(Color.white);
            }
            return super.getTableCellRendererComponent(table, value,
                                      isSelected, hasFocus, row, column);
          }
         };