對於自定義TableModel,我重寫了isCellEditable,它始終返回true。JTable單元格不反映更改,但可編輯
我也覆蓋setValueAt,但不知道如何使用該方法,以便JTable能夠反映編輯所做的更改。
下面是PersonTableModel修改後的代碼: -
class PersonTableModel extends AbstractTableModel{
public int getRowCount(){
return 10 ;
}
public int getColumnCount(){
return 1 ;
}
public String getColumnName(int c){
return "Name" ;
}
public Object getValueAt(int r, int c){
return "Person " + ++r ;
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true ;
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//what goes here
}
}
問候, RITS
編輯:
如所建議的通過模板構件,下面是我在哪裏的代碼使用PersonTableModel: -
public class CustomTableModel{
@SuppressWarnings("deprecation")
public static void main(String[] args){
JFrame frame = new PersonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
frame.show();
}
}
class PersonFrame extends JFrame{
@SuppressWarnings("deprecation")
public PersonFrame(){
setTitle("PersonTable");
setSize(600, 300);
TableModel model = new PersonTableModel() ;
JTable table = new JTable(model);
getContentPane().add(new JScrollPane(table), "Center") ;
show() ;
}
}
Thanx camickr :) – mogli 2010-10-24 19:19:30