我遇到了JTable排序功能的阻塞问题;这使得闲置开源项目的开发停滞了4个月了。希望在这里指出正确的方向。
上下文:我正在努力扩展ps3mediaserver的功能,以添加pms-mlx的媒体库。媒体服务器的UI已经使用swing完成。
问题:点击JTable中的列标题时,会看到一个看似随机的列而不是已点击的列。
当前实现:以下是用于实现的不同组件和类的说明:
可能的解决方案:
在某些时候,可以打开编辑对话框,其中必须检索行的内容,可以编辑,保存时必须更新行。
在重新处理整个事情之前,我想确保该组件能够处理我想要做的所有事情。
我更习惯在Visual Studio中使用.NET创建GUI。这是完全不同的,并且在挥杆时做同样的事情要困难得多。请告诉我我错了:)
[edit]如果有人愿意重现问题,请获取源或二进制文件,启动应用程序,导航到媒体库选项卡。在Genral部分,通过添加一些视频文件导入一些视频。转到库部分,单击“应用”以刷新列表并尝试对表进行排序。
答案 0 :(得分:2)
知道用户可以拖动JTable
列可能很有用。因此,视图(JTable
或子类)和模型(TableModel
的实现)可能具有不同的列号。同样,与模型相比,RowSorter
可能会影响视图中的行数或行数。 How to Use Tables: Sorting and Filtering中提到了相关的转换方法。特别是:“使用分拣机时,请务必记住转换细胞坐标。”
附录:作为替代方案,请考虑org.netbeans.swing.etable.ETable
或其子类org.netbeans.swing.outline.Outline
,描述为here。