问题标签 [tablerowsorter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8455 浏览

java - 是否可以在 jtable 中调用自动行排序器

无论如何在使用创建的jtable中调用自动行排序器

我试图让它按默认列排序,而无需用户单击列标题。

0 投票
3 回答
6160 浏览

java - Java - JTable - 如何获取已排序的列和排序方向?

有什么方法可以让 JTable 的哪一列被排序以及排序方向是什么?

谢谢。

0 投票
1 回答
1764 浏览

java - 当 setAutoCreateRowSorter 为 true 时刷新 JTable

我写了一个默认的表格渲染如下:

为了突出显示包含第 7 列负值的行,我还设置setAutoCreateRowSortertrue. 我的问题是,当我单击标题以根据它进行排序时,表格已排序但突出显示的行没有更改,因此突出显示了错误的行。

排序后如何重绘表格?

0 投票
1 回答
475 浏览

java - JXTable 列排序在 1.0 和 1.6 之间变化

自从我们更新到 JDK1.6 后,我最近将应用程序中的 SwingX 库从 1.0 更新到 1.6.2。我知道排序已更改为重新使用 JDK 1.6 中引入的一些核心 JDK 组件。

但是,在 1.0 版中,可以通过单击标题对列进行排序,随后的单击恢复了排序顺序,而 shift 单击删除了排序并恢复到原始顺序。更新到 1.6.2 版本后,shift 点击行为不再存在。

一个小样本

使用 1.0 版运行此示例允许通过按住 shift 单击标题来删除列排序,而在 1.6.2 版中,这不再有效。

我检查了文档,但没有遇到任何可以重新打开此行为的内容。因此,在我开始添加此功能之前,我虽然在这里问过是否有人知道重新引入 shift-click 行为的简单方法

0 投票
2 回答
1204 浏览

java - 如果在对 JTable 列数据进行排序后出现插入,则在 DefaultTableModel 中插入行会出错

在我的应用程序中,我已将 TableRowSorter 应用于我的 JTable 行排序工作正常,给出了行排序器的代码。

我的应用程序中有 JTree 和 JTable,JTree 包含文件夹,而 Jtable 显示来自 JTree 节点的选定文件夹的数据(文件和子文件夹信息)。当我单击 JTree 中的节点时,它将正确填充 JTable 填充 JTable 的代码如下所示

当我对 JTable 中的任何列进行排序并返回 JTree 并单击其他节点以查看其详细信息时,就会出现此问题,然后将发生异常并且 JTree 隐藏异常如下所示

0 投票
2 回答
1128 浏览

java - 当需要自定义插入行为时,我是否必须对 RowSorter 进行自定义实现?

我需要一个与 TableRowSorter/DefaultRowSorter 提供的插入行为不同的 JTable。

我需要一个表格,这样当用户插入一行时,新插入的行应该低于光标所在的行,并且光标放置在新插入的行上。让我用一个例子来说明:

初始状态 - 表有 4 行:

用户的光标在第二行,用户触发插入。新插入的行出现在下面,光标也移动到那里:

我很清楚我有两种方法可以解决这个问题。

第一种方法是更改​​我的模型,因此插入是在模型中的正确位置完成的。我不喜欢这种解决方案,因为这意味着模型索引将在插入的行下方的所有行中发生变化。这是完成我需要的最简单的方法,但是,正如我所说,以模型索引更改引起的潜在大开销为代价......

第二种方法是实现一个 RowSorter,它将维护自己的 videToModel[] 和 modelToView[] 数组,并在插入行时保持正确的顺序。自然,我从扩展 TableRowSorter 开始,但问题是 modelToView 和 viewToModel 是私有数组,我无法访问它们,所以在过滤行时会出现问题......

我试图避免编写自己的 RowSorter 实现,因为它需要时间才能做到正确......

2013-10-07 更新: 我通过实现自己的 RowSorter 实现了这一点。在尝试了这两种方法后,我意识到第二种方法给了我更多的灵活性。

0 投票
0 回答
356 浏览

java - 单击Java中的表格行时未调用自定义比较器的比较方法

我创建了自定义比较器来比较第一行的值,但从未调用过“比较”方法。

0 投票
2 回答
5259 浏览

java - 在 JTable 中使用 setAutoCreateRowSorter 对不同的数据类型进行排序

我正在通过 Java 查询 MySQL 数据库,从结果集中提取数据并将其放入 DefaultTableModel 中,然后将其放入 JTable 中,然后放入 JScrollPane 中进行显示。

在 JTable 中,我通过

但是,如果我要排序的行中的单元格不是 String 类,那么我会得到 java.lang.ClassCastException。我表中的数据有以下几类:

下面是当我尝试对类 java.lang.Double 的列进行排序时得到的错误,然后是将结果集作为输入输出的类输出 JTable。如果有人对如何解决我的排序问题有任何想法,将不胜感激。

这是该课程的来源:

0 投票
2 回答
653 浏览

java - JTable的非实时/非实时排序

当表格处于排序模式时(使用RowSorter),似乎大多数时候表格都是实时排序的。例如,每当我添加新行时,表格都会自动排序(编辑单元格除外)。我想知道是否有任何方法可以禁用这种实时排序行为。

我想要做的是:在对表格进行排序后,无论是升序还是降序,排序器都会保持当前的排序状态并停止实时排序。然后可以在底部添加新行,并且可以上下移动选定的行,并且表格会更新视图模型中的所有更改。

@trashgod:感谢您的回答。我实际上有点像原生行排序器方法,因为我可以在三态(升序、降序和未排序)中圈出列状态。如果使用 Collections.sort,我必须在每次排序之前创建一个变量来保存原始行顺序。

0 投票
2 回答
2532 浏览

java - 跨模型更新在已排序的 JTable 中保留选定的模型行

如果 JTable 已排序,我很难获得以下代码来保留模型中逻辑选择的行。

当未应用排序时,它按预期工作。

不幸的是 setRowSelectionInterval() 没有按预期更新选定的行,尽管使用正确的视图行号调用。它似乎什么都不做。

.....所以,

为什么 setRowSelectionInterval() 无法更新选择,或者我错过了什么?