可视化集合< T>在Java Swing中使用JTable

我想想象一组线程,例如:
Set<ThreadInfo>
。我选择
Set
,因为JVM中的每个线程都是唯一的。在Java Swing中选择使用JTable组件显示它我遇到了一些问题。 我需要实现一个TableModel。 TableModel依赖于
getValueAt(int row, int col)
setValueAt(Object o, int row, int col)
来传播更改的值。 但是如何使用Set作为数据模型来实现这些方法?使用列表我会说row = list index,但是有一个集合我不能对元素顺序做出假设。     
已邀请:
我会坚持使用List,因为可靠的排序对于表的支持非常重要。如果失败了,你可以使用一个有序的集合,比如TreeSet。     
确定您希望如何排序线程,并在正确排序的列表中创建该集的副本。将该列表用于模型。当集合更改时,使用新排序的数据刷新列表。     
Set不提供通过索引获取Object的方法。 您应该使用List来执行您想要的操作。 或迭代元素,直到索引通过参数传递到'int行'(避免此解决方案)。     
表本身就是显示列表,底层数据模型通常是Vector of Vector或Object [] []数组。所以在这种情况下,你需要将你的Set转换为List(所以你需要两个保持同步的数据结构),你需要合理的随机访问 - 一个小的Set可以很好地迭代并找到东西,但任何东西由于JTable在某些情况下会经常提出问题,因此重要规模将成为一个问题。     

要回复问题请先登录注册