更新时间:2023-12-04 15:38:37
您的TableModel太复杂了.您需要做的就是存储电影列表.然后,您的getValueAt()和setValueAt()方法应该访问列表.
You TableModel is too complex. All you need to do is store a List of Movies. Then you getValueAt() and setValueAt() method should access the List.
您的构造函数应该简单地是:
Your constructor should simply be:
public MovieTableModel(List movies)
{
datenMov = movies;
}
getValueAt()应该类似于:
The getValueAt() should be something like:
public Object getValueAt(int row, int column)
{
Movie movie = datenMov.get(row);
switch(column)
{
case 0: return movie.getNumber();
case 1: return movie.getTitle();
...
default: return null;
}
}
和setValueAt()方法类似:
and the setValueAt() method something like:
@Override
public void setValueAt(Object value, int row, int column)
{
Movie movie = get(row);
switch (column)
{
case 0: movie.setNumber((String)value); break;
case 1: movie.setTitle((String)value); break;
...
}
}
此外,在setValueAt()方法中,您需要调用:
Also, in the setValueAt() method you need to invoke:
fireTableCellUpdated(row, column);