在JTable里,我想设置一些CELL不可编辑,看了其它的贴子,要自己重写
public class NoEditTableModel extends DefaultTableModel
{
public boolean isCellEditable(int row,int col)
{return false;}
}可这样不行呀,应该怎么用啊,有什么其它的方法吗

解决方案 »

  1.   

    public class SimpleTable
    {
    public SimpleTable()
    {
    JFrame f = new JFrame();
    Object[] playerInfo =
    {

    "李", "66", "32", "92", "false"

    };
    String[] Names =
    {
    "名前", "language", "数学", "Total", "合格"
    };

    // DefaultTableModel tableModel = new DefaultTableModel(playerInfo,Names) {
    // public boolean isCellEditable(int rowIndex, int columnIndex)
    // {
    // return false;
    // }
    // };
    DefaultTableModel tableModel = new DefaultTableModel(Names,10) {
    public boolean isCellEditable(int rowIndex, int columnIndex)
    {
    return true;
    }
    };

    JTable table = new JTable(tableModel);
    tableModel.addRow(playerInfo); table.setPreferredScrollableViewportSize(new Dimension(550, 30)); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


    JScrollPane scrollPane = new JScrollPane(table);
    f.getContentPane().add(scrollPane, BorderLayout.CENTER);
    f.setTitle("Simple Table");
    f.pack();
    f.show();
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    } public static void main(String[] args)
    {
    SimpleTable b = new SimpleTable();
    }
    }
      

  2.   

    class MYDefaultTableModel extends DefaultTableModel
    {
    public boolean isCellEditable(int rowIndex, int columnIndex)
    {
    return true;
    }
    }
    主要是这个方法,你可以根据行,和列来设置是否可以编辑,true 就是可以编辑,false就是不可以编辑MYDefaultTableModel tableModel = new MYDefaultTableModel()
    JTable table = new JTable(tableModel);
      

  3.   

    13、 设置表格单元格不能编辑的方法:
    //在创建JTable数据模型时,重写public boolean isCellEditable(int row,int column)方法
    dtm=new DefaultTableModel()
    {
    public boolean isCellEditable(int row,int column){return false;}
    };