我正在编写一个使用包含模型的JTable的应用程序(DefaultTableModel)。现在,经过一段时间的努力,我不确定是否最好将所有数据存储在模型中。
如果所有数据都存储在Objects(例如,在ArrayList中)并且模型仅显示列表对象中的数据,那么有什么好处?
特别是在我需要编写一些在某种列表上更容易处理的排序算法之后,我才想到这一点。同时保存“模型” - >对象列表(然后)比保存表模型更容易。
继续使用我当前的概念(将数据保存在模型|序列化模型中以保存表格|排序模型本身)是否更有效?或者最好将所有内容保存在对象中,每个对象代表一行,这些行存储在列表中?
答案 0 :(得分:0)
我需要编写一些排序算法
JTable支持直接对TableModel中的数据进行排序。有关详细信息,请阅读Sorting and Filtering上Swing教程中的部分。因此,这可以直接由表格处理,因此您不需要外部代码。
每个Object代表一行,它们存储在一个列表中?
是的,这是一种有效的方法,但数据仍必须驻留在TableModel中。也就是说,必须在TableModel中定义包含表示表中行的自定义对象的List。如果由于某种原因需要访问List,则将帮助器方法添加到TableModel。不要将数据保存在两个地方。
例如,查看专为此概念设计的Row Table Model。 JButtonTableModel.java
代码显示了您希望存储在表中的每个自定义对象的代码所需的内容。