java - JTable 中的选定行以及排序

标签 java swing jtable tablerowsorter

我对 JTable 有一个非常奇怪的问题。

我将数据从 DB 放入 JTable 中。当用户双击任何单元格时,它会复制用户双击所在行的第一列的单元格内容。到目前为止,它运行完美。

当用户通过单击标题对 JTable 进行排序时,就会出现问题。当表格已排序并且现在当用户双击任何行时,它不会当前存储在该行的第一列上。当 JTable 未排序时,它复制最初存储在该行第一列的内容。

有任何想法吗?

最佳答案

问题:

这里的问题是您正在获取 JTable TableModel 中的初始行索引。 ,而不是表 View 中显示的相关行索引。

解决方案:

您可以使用 convertRowIndexToModel(index) method 将已排序 jTable 的显示索引与其在 dataModel 中的相关索引进行映射。它接收 View 中的行索引并返回模型中相应行的索引。

假设您有以下 jTable:

TableModel myModel = createMyTableModel();
JTable table = new JTable(myModel);
table.setRowSorter(new TableRowSorter(myModel));

然后循环遍历模型索引并对每个索引使用此方法以获取 TableModel 中对应的索引。 :
table.getRowSorter().convertRowIndexToModel(0); // index 0 here

关于java - JTable 中的选定行以及排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30644611/

相关文章:

java - 如何仅在客户端上运行变量

java - 哪种方法是读取缓慢变化查找和丰富流输入集合的最佳方法?

java - 如何捕获JTree节点展开事件

java - 3 Swing 应用程序设计 : which is the best?

java - 在 Android Studio 中应用于 URL 末尾时出现 "null"EditText 错误

java - 如何在带有 iText 的多行 AcroFields 中使用制表符?

java - 您可以将带有 int、double 或只是字符串的数据添加到 JTable 中吗

java - 如何刷新JTable

java - 由 DefaultMutableTreeNode 制作的遍历树

java - 我无法将 jtbable 中的数据插入数据库(netbeans 和 java 编码中的新功能)已编辑