使用Java Swing中的JTable可视化Set <t> </t>

时间:2011-04-07 15:31:02

标签: java swing jtable set tablemodel

我想想象一组线程,例如: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,但是有一个我不能对元素顺序做出假设。

4 个答案:

答案 0 :(得分:3)

我会坚持使用List,因为可靠的排序对于表的支持非常重要。如果不这样做,您可以使用排序集,例如TreeSet

答案 1 :(得分:2)

确定您希望如何排序线程,并在正确排序的列表中创建该集的副本。将该列表用于模型。当集合更改时,使用新排序的数据刷新列表。

答案 2 :(得分:0)

Set不提供通过索引获取Object的方法。

你应该使用List来做你想做的事。

或迭代元素,直到索引通过参数传递到'int行'(避免使用此解决方案)。

答案 3 :(得分:0)

表本身就是显示列表,底层数据模型通常是Vector of Vector或Object [] []数组。所以在这种情况下,你需要将你的Set转换为List(所以你需要两个保持同步的数据结构),你需要合理的随机访问 - 一个小的Set可以很好地迭代并找到东西,但任何东西由于JTable在某些情况下会经常提出问题,因此重要规模将成为一个问题。