Java 1.5 中的 JTable 对行进行排序
有没有一种简单的方法可以使用 Java 1.5 对 JTable 中的行进行排序(setAutoCreateRowSorter
和 TableRowSorter
似乎是 Java 1.6 功能)?
Is there a simple way to sort rows in a JTable with Java 1.5 (setAutoCreateRowSorter
and TableRowSorter
appear to be Java 1.6 features)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Java 1.5 中的排序只能通过库实现。
例如,使用 Kaarel 提到的 JXTable 或此处中提到的 VLTable。
另一个好的库是 glazedlists,
它也在 Spring Rich Client 项目中使用。
甚至还有多种方法可以将Glazed Lists 与 JXTable 结合使用
Sorting in Java 1.5 is only possible via libraries.
E.g. use the JXTable mentioned from Kaarel or VLTable from here.
Another good library is glazedlists
which is also used in the Spring Rich Client project.
There are even ways to use Glazed Lists with JXTable
使用 SwingX 项目中的
JXTable
,请参见Use the
JXTable
from the SwingX project, see e.g.JXTable 需要一个大包,并且很难获得合适的版本。 (Java 1.5 版本不高于 1.0)。
尝试改为 TableSorter.java。 获取它:
http://ouroborus.org/java/2.1/TableSorter.java
并将其插入到您的项目中。
现在,您将 tableModel 包装在 TableSorter 的实例中,并将其插入到 JTable 中。 TableSorter 充当 JTable 实例和 tableModel 之间的“中间人”。
像这样使用它(代码未经测试):
您可以像这样以编程方式设置 sprting:
尝试调整
MouseHandler.mouseClicked()
让它跳过点击顺序中的 NOT_SORTED 选项,并与渲染器混淆更好的列标题以及三角形的放置和可见性。JXTable requires a big package, and is difficult to get the right version for. (no higher than version 1.0 for Java 1.5).
Try instead TableSorter.java. Get it at:
http://ouroborus.org/java/2.1/TableSorter.java
And insert it in your project.
Now you wrap your tableModel in an instance of TableSorter, and instert that into the JTable. TableSorter acts as a "go-between" the JTable-instance and your tableModel.
Use it something like this (code untested):
You can set sprting programmatically like this:
Try tweeking
MouseHandler.mouseClicked()
to get it to skip the NOT_SORTED option in the clicking order, and mess with renderers for e better column header and placing and visibility of triangle.