JTable与jgoodies排序麻烦

时间:2011-08-24 07:45:28

标签: java swing sorting binding jtable

我遇到了JTable排序功能的阻塞问题;这使得闲置开源项目的开发停滞了4个月了。希望在这里指出正确的方向。

上下文:我正在努力扩展ps3mediaserver的功能,以添加pms-mlx的媒体库。媒体服务器的UI已经使用swing完成。

问题:点击JTable中的列标题时,会看到一个看似随机的列而不是已点击的列。

当前实现:以下是用于实现的不同组件和类的说明:

可能的解决方案:

  • 最好,我想保留当前的实现并弄清楚如何纠正排序,但我怀疑有人可以帮助我解决这个问题!?另外,由于奇怪的行为,我必须添加一些代码;他们在代码中被评论
  • 替代选项是将JTable完全更改为另一个控件。我做了一些研究,但没有找到我希望的解决方案。限制是这样的
    • 它必须可以嵌入swing UI
    • 最好它应该支持数据绑定
    • 支持备用行颜色
    • 行排序

在某些时候,可以打开编辑对话框,其中必须检索行的内容,可以编辑,保存时必须更新行。

在重新处理整个事情之前,我想确保该组件能够处理我想要做的所有事情。

我更习惯在Visual Studio中使用.NET创建GUI。这是完全不同的,并且在挥杆时做同样的事情要困难得多。请告诉我我错了:)

[edit]如果有人愿意重现问题,请获取源或二进制文件,启动应用程序,导航到媒体库选项卡。在Genral部分,通过添加一些视频文件导入一些视频。转到库部分,单击“应用”以刷新列表并尝试对表进行排序。

1 个答案:

答案 0 :(得分:2)

知道用户可以拖动JTable列可能很有用。因此,视图(JTable或子类)和模型(TableModel的实现)可能具有不同的列号。同样,与模型相比,RowSorter可能会影响视图中的行数或行数。 How to Use Tables: Sorting and Filtering中提到了相关的转换方法。特别是:“使用分拣机时,请务必记住转换细胞坐标。”

附录:作为替代方案,请考虑org.netbeans.swing.etable.ETable或其子类org.netbeans.swing.outline.Outline,描述为here