且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Java Swing JTable setValueAt不起作用

更新时间: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);