使这些单元个不能编辑,但鼠标还是可以点上,既有焦点。//重载isCellEditable可编辑
import javax.swing.table.*;public class CHReadOnlyTableModel extends DefaultTableModel {    int[] editableColumns;
    public CHReadOnlyTableModel() {
    }    public void setEditableColumns(int[] arrColumn)
    {
        int n = arrColumn.length;
        editableColumns = new int[n];
        for (int i = 0 ;i < n;i++)
        {
            editableColumns[i] = arrColumn[i];
        }
    }    public boolean isCellEditable(int row, int col)
    {
        if (editableColumns !=null)
        {
            int n = editableColumns.length;
            boolean retValue = false;
            if (n > 0)
            {
                for (int i = 0;i < n;i++)
                {
                    if (col == editableColumns[i])
                    {
                        retValue = true;
                        break;
                    }
                }
            }
            return retValue;
        }
        else return false;
    }}

解决方案 »

  1.   

    晕~! 这样我知道的,嫌麻烦,我放假没有带 API 手册回家
    不知道 DefaultTableModel 有没有直接的 setXXX 方法先谢了!
      

  2.   

    to meteor135(流星雨) 我只是不想双击修改单元格,其它还是要 di
    没办法,只能这样了
    table = new JTable(model = new DefaultTableModel(data,colname) {
                public boolean isCellEditable(int rowIndex, int mColIndex) {
                    return false;
                }
            });