Swing JTable 中 autoCreateRowSorter 的初始状态

发布于 2024-09-03 18:43:11 字数 227 浏览 4 评论 0原文

我的 Swing 应用程序上有这个 JTable,并且启用了 autoCreateRowSorter。我的表只有 3 列,两个字符串和一个整数,当我单击列标题时,它对所有列都适用。

但是,我正在寻找以编程方式完成此操作的方法。我想为此表设置“初始状态”。在 Windows 外观和感觉中,列标题(排序后)有一个显示排序顺序的小箭头。但在启动时没有显示,我必须进行一次初始单击。

我怎样才能通过代码做到这一点?

I have this JTable on my Swing app with the autoCreateRowSorter enabled. My table only has 3 columns, two strings and one int, it works well for all of them when I click the column headers.

However, I'm looking for way to do it programatically. I wanted to set the "initial state" for this table. With the Windows look and feel, the column header (when sorted) has a little arrow showing the sort order. But at startup that doesn't show, I have to do one initial click.

How can I do that by code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(3

九公里浅绿 2024-09-10 18:43:11

要以编程方式对表进行排序,您可以执行以下操作:

DefaultRowSorter sorter = ((DefaultRowSorter)table.getRowSorter());
ArrayList list = new ArrayList();
list.add( new RowSorter.SortKey(0, SortOrder.ASCENDING) );
sorter.setSortKeys(list);
sorter.sort();

To programaticallly sort the table you can do something like:

DefaultRowSorter sorter = ((DefaultRowSorter)table.getRowSorter());
ArrayList list = new ArrayList();
list.add( new RowSorter.SortKey(0, SortOrder.ASCENDING) );
sorter.setSortKeys(list);
sorter.sort();
还给你自由 2024-09-10 18:43:11

我认为 DefaultRowSorter#toggleSortOrder(int column) 可以完成这项工作

I think DefaultRowSorter#toggleSortOrder(int column) will do the work

淡莣 2024-09-10 18:43:11

您甚至不需要 DefaultRowSorter 接口。

table.getRowSorter().toggleSortOrder(column);

也有效。

You don't even need the DefaultRowSorter interface.

table.getRowSorter().toggleSortOrder(column);

works as well.

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