我在编写程序时遇到了性能问题,我需要你的帮助! :)
我正在使用JTable查看从我制作的矢量中获取的测试结果,其中有4列。当我单击一行时,该测试的已保存txt文件中的详细信息将显示在子窗口中。此外,当我单击列标题时,事件将向量发送到一个函数,该函数根据按下的列对其进行排序。每次需要输入新值时,再次调用排序函数。
我的程序可以正常运行少量行。但是,当我输入说150行时,每次我进入一个新行时,表格轻弹(排序可能需要很长时间),但我必须保持向量与jable同步,因为“推送查看结果“选项。
我真的很感激这方面的一些帮助。 感谢
答案 0 :(得分:3)
你自己不应该做任何排序。 JTable
支持本机排序,并且convertRowIndexToModel
和convertRowIndexToView
方法可以从视图索引转到模型索引,反之亦然。
请参阅http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting。
答案 1 :(得分:0)
使用JTable的内部分拣机(DefaultRowSorter)。不要重新创建保存数据的向量 - 使用Vector的add()方法添加新记录。在多年的Java GUI开发中,我还没有看到一个案例,我必须在TableModel中保存记录。确保getColumnClass()返回正确的类型,因此默认的排序器知道如何对列进行排序,这就是全部。