JTable的行条目少于已显示的行和排序问题

| 我正在使用JTable对象显示存储在数据库中的一些数据。 现在,我想获得以下结果: 即使我的数据库表中的条目较少,显示的JTable也必须至少具有n行(使其为10)。空行必须始终显示在表的末尾。 从现在开始,我将执行以下操作: 我实现了扩展AbstractTableModel的自定义表格模型。在实现的方法getRowCount中,我做到了:
public int getRowCount() {
       if (myRowCount < 10 )

           return 10;
       else 
           return myRowCount;
}
问题是: 这段代码可以正常工作,但是我当时 想知道这是否正确 实现此结果的方法。是 这是一个好的解决方案? 除此之外,如果我尝试排序 我得到了不希望有的输出的行。实际上,排序时似乎考虑了空行,产生的结果是(例如,按后代顺序对int列进行排序)空行显示在表的开头。我是否必须实现自定义TableRowSorter来避免该行为,或者是否可以使用默认行为(table.setAutoCreateRowSorter(true))? 提前致谢 编辑: 我阅读了@mKorbel链接和@kleopatra @camickr帖子。它对我有很大帮助。但是我真的想以最简洁的方式做到这一点,因为此类在我的应用程序中非常重要。 前一个链接文章中提出的解决方案是否足够干净?还是有一些我现在看不到的缺点? 我开始了赏金计划。请给我很好的建议! 谢谢.. 马可     
已邀请:
如果您希望能够编辑这些空行,那么我猜唯一的方法是重写
DefaultRowSorter
s
getComparator(column)
方法。 编辑我以为您可以覆盖getComparator()或将Comparator设置为每一列,以便它检查值之一是否为null等。我尝试了一下,但它没有用,因为DefaultRowSorter中存在null检查,还有其他问题。 不幸的是,DefaultRowSorter中的大多数内容都是私有的,因此自定义的空间不大。如果您想要这种行为,则必须编写自己的RowSorter实现。我建议您仅在此功能对您的应用绝对重要时才采用这种方法。     

要回复问题请先登录注册