怎么样在最左边那列加上复选框?
程序如下:
package suolie;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
public class FixedColumnExample extends JFrame
{
  public FixedColumnExample()
  {
    this.setSize(400, 150);    data = new Object[][]
        {
        {"1", "11", "A", "", "", "", "", ""},
        {new Boolean(true), "22", "", "B", "", "", "", ""},
        {new Boolean(true), "33", "", "", "C", "", "", ""},
        {new Boolean(true), "44", "", "", "", "D", "", ""},
        {"5", "55", "", "", "", "", "E", ""},
        {"6", "66", "", "", "", "", "", "F"}};
    column = new Object[]
        {"fixed 1", "a", "b", "c", "d", "e", "f", "g"};    AbstractTableModel Model1 = new AbstractTableModel()
    {
      public int getColumnCount()
      {return 1; }      public int getRowCount()
      {return data.length; }      public String getColumnName(int col)
      {
        return (String) column[col];
      }
      public Object getValueAt(int row, int col)
      {
        return data[row][col];
      }
      public boolean CellEditable(int row, int col)
      {
        return true;
      }
    };
    AbstractTableModel model2 = new AbstractTableModel()
    {
      public int getColumnCount()
      {
        return column.length - 1;
      }
      public int getRowCount()
      {
        return data.length;
      }
      public String getColumnName(int col)
      {
        return (String) column[col + 1];
      }
      public Object getValueAt(int row, int col)
      {
        return data[row][col + 1];
      }
      public void setValueAt(Object obj, int row, int col)
      {
        data[row][col + 1] = obj;
      }
      public boolean CellEditable(int row, int col)
      {
        return true;
      }
    };
    table1 = new JTable(Model1);
    table1.getSelectionModel().addListSelectionListener(new ListSelectionListener()
    {
      public void valueChanged(ListSelectionEvent e)
      {
        if (e.getValueIsAdjusting())
          checkSelection(true);
      }
    });
    table2 = new JTable(model2);
    table2.getSelectionModel().addListSelectionListener(new ListSelectionListener()
    {
      public void valueChanged(ListSelectionEvent e)
      {
        if (e.getValueIsAdjusting())
          checkSelection(false);
      }
    });
    table1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    table2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    JScrollPane scroll = new JScrollPane(table2);
    JViewport viewport = new JViewport();
    viewport.setView(table1);
    viewport.setPreferredSize(table1.getPreferredSize());
    scroll.setRowHeaderView(viewport);
    scroll.setCorner(JScrollPane.UPPER_LEFT_CORNER, table1.getTableHeader());
    getContentPane().add(scroll, BorderLayout.CENTER);
  }
  private void checkSelection(boolean isFixedTable)
  {
    int SelectedIndex1 = table1.getSelectedRow();
    int selectedIndex2 = table2.getSelectedRow();
    if (SelectedIndex1 != selectedIndex2)
    {
      if (isFixedTable)
      {
        table2.setRowSelectionInterval(SelectedIndex1, SelectedIndex1);
      }
      else
      {
        table1.setRowSelectionInterval(selectedIndex2, selectedIndex2);
      }
    }
  }
  public static void main(String[] args)
  {
    FixedColumnExample frame = new FixedColumnExample();
    frame.show();
  }
  Object[][] data;
  Object[] column;
  JTable table1, table2;
}