JTable和Table模型什么时候用?

San*_*eev 1 java swing jtable tablemodel defaulttablemodel

我对这两者之间的区别有所了解。但是,我对何时使用何时使用有些困惑。我只知道,

  • 要显示 JTable,请创建一个 JTable 并为其设置相应的表模型。
  • 任何时候,如果我们想改变那个表中的数据,改变模型中的数据,那么这些改变就会反映在视图中。

我们可以从视图和模型中获取表的值。这是我感到困惑的地方。如果发生任何类似(行选择)的事件,那么我必须从中获取值?是从视图还是模型?考虑到 JTable 的排序和过滤,使用的最佳实践是什么?

FTh*_*son 5

您可以从表的模型或JTable实例本身获取值;最终结果是一样的。JTablegetValueAt和相关方法都只是简单地对内部表模型对象调用相同的方法。

JTable#getValueAt(int, int) 源代码

public Object getValueAt(int row, int column) {
    return getModel().getValueAt(convertRowIndexToModel(row),
                                 convertColumnIndexToModel(column));
}
Run Code Online (Sandbox Code Playgroud)