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

如何解决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实现。我建议您仅在此功能对您的应用绝对重要时才采用这种方法。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?