我查了API,并且修改了语句:private DefaultTableModel model = new DefaultTableModel();
private JTable table = new JTable(model);TableColumn tc = new TableColumn();
tc.setIdentifier("Progress");
model.addColumn(tc);table.getColumn("Progress").setCellRenderer(new ProgressCellRender());还是不行,是不是还有什么没有做的?

解决方案 »

  1.   

    jTable.getColumn("identifier").setCellRenderer(new ProgressCellRender());identifier指什么呢?是列名吗?我把一个列名传递过去会报错啊----------------------------------------------------------指的是列名。
    具体报的什么错?
      

  2.   

    public class ProgressCellRender extends DefaultTableCellRenderer {

      public ProgressCellRender()
      {
      }   public Component getTableCellRendererComponent(JTable table,
      Object value,
      boolean isSelected,
      boolean hasFocus,
      int row,
      int column)
      {
    JProgressBar progressBar = new JProgressBar();
    progressBar.setMinimum(0);
    progressBar.setMaximum(100);
    progressBar.setValue(0);
    progressBar.setBackground(Color.white);
    progressBar.setBorder(BorderFactory.createEmptyBorder());
    progressBar.setForeground(new Color(110, 92, 255));
    if (value != null)
    {
      int progressValue = ((Integer)value).intValue();
      progressBar.setValue(progressValue);
      if (isSelected)
      {
    progressBar.setBackground(new Color(206, 207, 255));
      }
      else
      {
    progressBar.setBackground(Color.white);
      }
    }
    progressBar.setToolTipText(String.valueOf(progressBar.getValue()) + "%");
    return this;
      }}/////////////////////////////////////////////////////////public class MyTableWithProcessbar extends Panel { private javax.swing.JTable jTable = null;
    private DefaultTableModel model = new DefaultTableModel();
    private int rows = 3, cols = 5;
    private Object[] rowData = new Object[cols];
    /**
     * This is the default constructor
     */
    public MyTableWithProcessbar() {
    super();
    initialize();
    }
    /**
     * This method initializes this
     * 
     * @return void
     */
    private void initialize() {
    this.setLayout(null);
    this.add(getJTable(), null);
    this.setSize(490, 200);
    this.setBackground(new java.awt.Color(204, 204, 204));
    }
    /**
     * This method initializes jTable
     * 
     * @return javax.swing.JTable
     */
    private javax.swing.JTable getJTable() {
    if (jTable == null) {
    jTable = new JTable(model);
    jTable.setBounds(41, 14, 375, 80); for (int c = 0; c < cols; ++c)
    model.addColumn("Column");

    for (int r = 0; r < rows; ++r) {
    for (int c = 0; c < cols; ++c) {
    rowData[c] = "(" + r + "," + c + ")";
    }
    model.addRow(rowData);
    }
    jTable.getColumn("Column").setCellRenderer(new ProgressCellRender()); }
    return jTable;
    }
    }