Java 1.5 中的 JTable 对行进行排序

发布于 2024-07-14 18:33:40 字数 131 浏览 5 评论 0原文

有没有一种简单的方法可以使用 Java 1.5 对 JTable 中的行进行排序(setAutoCreateRowSorterTableRowSorter 似乎是 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凡间太子 2024-07-21 18:33:40

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

浅浅 2024-07-21 18:33:40

JXTable 需要一个大包,并且很难获得合适的版本。 (Java 1.5 版本不高于 1.0)。

尝试改为 TableSorter.java。 获取它:

http://ouroborus.org/java/2.1/TableSorter.java

并将其插入到您的项目中。

现在,您将 tableModel 包装在 TableSorter 的实例中,并将其插入到 JTable 中。 TableSorter 充当 JTable 实例和 tableModel 之间的“中间人”。

像这样使用它(代码未经测试):

JTable myTable = new JTable();
TableSorter mySorter = new TableSorter(myTableModel, myTable.getTableHeader());
myTable.setTableModel(mySorter);

您可以像这样以编程方式设置 sprting:

mySorter.setSortingStatus(0,TableSorter.ASCENDING);

尝试调整 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):

JTable myTable = new JTable();
TableSorter mySorter = new TableSorter(myTableModel, myTable.getTableHeader());
myTable.setTableModel(mySorter);

You can set sprting programmatically like this:

mySorter.setSortingStatus(0,TableSorter.ASCENDING);

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文