我刚上高中,是编程新手。我正在处理我的第一个任务,但遇到了一个问题。我到处寻找,但没有找到任何帮助。我编写了一个接受输入并在 JTable 中输出数据的 gui。一切看起来都很好,只是当我输入新输入时表格没有更新,即先前显示的日期不会更改为新值。我怀疑下面显示的 AbstractTableModel 的实现是导致故障的原因,因为我只是不知道如何覆盖方法 isCellEditable 和 setValueAt。有人可以进行必要的更正并给我任何额外的信息来帮助我完成我的项目吗?如果您能尽快回复我,我将不胜感激。
附言。nh 和 vh 是整数数组,proc_1 和 proc_ 是字符串数组,并且表被添加到 jtabbedpane,如果这很重要的话......
public class TableModel extends AbstractTableModel {
int numRows;
String colNames[] = { "NH", "Horse Names", "VH",
"Proc. I", "Proc. II" };
TableModel() {
super();
numRows = fnh;
}
@Override
public int getRowCount() {
return numRows;
}
@Override
public int getColumnCount() {
return 5;
}
@Override
public String getColumnName( int c ) {
return colNames[c];
}
@Override
public Object getValueAt( int r, int c ) {
if ( c == 0 )
return nh[r];
else if ( c == 1 )
return hNam[r];
else if ( c == 2 )
return vh[r] ;
else if ( c == 3 )
return proc_1[r];
else
return proc_2[r];
}
@Override
public boolean isCellEditable( int r, int c ) {
return true;
}
@Override
public void setValueAt( Object v, int r, int c ) {
fireTableCellUpdated( r, c );
}
}