0

我正在尝试想出一种将数据从数据库传输到 JTable 的方法,起初我想使用 ResultSet 到 Vector 到 DefaultTableModel 来实现它,因为 DefaultTableModel 只需要一个 Vector,但后来我读到似乎 vector 已过时且已弃用。所以我的问题是,在这种情况下使用 Vector 会是不好的编程吗?如果不推荐使用向量,那么为什么 DefaultTableModel 只需要一个向量?

-谢谢。

4

2 回答 2

1

我读到该向量已过时,应改为使用集合,

Vector 是 Collections 框架的一部分。它实现了与 ArrayList 相同的 List 接口。不同之处在于 Vector 是自动同步的,而 ArrayList 不是。在 gui 中使用 JTable 时,这几乎没有什么区别(如果有的话)。

如果您想要一个使用 ArrayList 的模型,那么您可以查看List Table Model。此外,请参阅数据库中的表,了解使用 aResultSet创建ListTableModel.

于 2013-09-21T14:49:58.347 回答
1

如果不推荐使用向量,那么为什么 DefaultTableModel 只需要一个向量?

  • DefaultTableModel采用JTablelDefaultTableModel中的简单数组Object、String、Integer、Boolean[]

  • Vector 仍然是并将成为JTableDefaultTableModel的构造函数(Java8 的 pre_realeses 没有任何变化)

  • DefaultTableModel 为 JTable 所需的所有方法提供了简单的实现,而且一切都只是关于 DefaultTableModels API 中实现的限制或增强方法

  • 您可以使用 util.List 作为 JTable 的底层数组,更好地替代 Vector,但我建议使用 AbstractTableModel,

  • 在 AbstractTableModel 中,您也可以使用 Object、String、Integer、Boolean[] 或 Vector> 作为底层 arra

于 2013-09-21T12:51:38.123 回答