Для пользовательской TableModel, я переопределяю isCellEditable, который всегда возвращается true.JTable cell не отражает изменения, хотя редактируется
Я также переопределяю 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
Edit:
По предложению членов формы, ниже код, где я с использованием 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