compListTblModel=new TableModelExAdapter(compColumnNames,compData,compLongValues,false);public TableModelExAdapter(String[] columnNames, Object[][] data, Object[] longValues, boolean isEditable)目前只能做到 isEditable是true,全部都是editable,false, 全部都是 non editable,那位达人指点一下,谢谢了!
import java.util.ArrayList;public class DispatchTableModel
extends AbstractTableModel { private ArrayList columnNames = new ArrayList();
private ArrayList dataRows = new ArrayList();
private ArrayList colEdit = new ArrayList();
private String cellEditFlags; public DispatchTableModel(ArrayList value, ArrayList headname,
String cellEditFlag) {
colEdit = headname;
cellEditFlags = cellEditFlag;
for (int loopHead = 0; loopHead < headname.size(); loopHead++) {
columnNames.add(headname.get(loopHead));
}
for (int loopValue = 0; loopValue < value.size(); loopValue++) {
ArrayList vRow = new ArrayList();
vRow = (ArrayList) value.get(loopValue);
dataRows.add(vRow);
}
}
public int getColumnCount() {
if (columnNames == null) {
System.out.println("kong name");
}
return columnNames.size();
}
public int getRowCount() {
if (dataRows == null) {
System.out.println("kong data");
}
return dataRows.size();
}
public String getColumnName(int col) {
return columnNames.get(col).toString();
}
public Object getValueAt(int row, int col) {
return (Object) ( ( (ArrayList) dataRows.get(row)).get(col));
}
public Class getColumnClass(int col) {
return getValueAt(0, col).getClass();
} public ArrayList getValues() {
return this.dataRows;
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void setValueAt(Object value, int row, int col) {
ArrayList tmp = new ArrayList();
tmp = (ArrayList) dataRows.get(row);
tmp.set(col, value);
fireTableCellUpdated(row, col);
}
public void addRow(ArrayList data) {
int RowNums = dataRows.size();
dataRows.add(data);
fireTableRowsInserted(RowNums, RowNums);
}
public void insertRow(int row, ArrayList data) {
dataRows.add(row, data);
fireTableRowsInserted(row, row); }
public void deleteRow(int row) {
int RowNums = dataRows.size();
dataRows.remove(row);
fireTableRowsDeleted(RowNums, RowNums);
}
}
这个你参考一下。isCellEditable()方法控制是否可以编辑。
在这里你可以控制哪一列可以编辑,哪一列不可以编辑。现在的是全部可以编辑