java - JTable重新排序时如何跟踪colem索引?
问题描述
我有 jTable,其名称如下所示:-
columns = {"ID", "NAME", "PHONE"};
包含值:
----------------------------
|ID | NAME | PHONE |
----------------------------
| 1 | Adeeb | 0750000 |
| 2 | Jack | 0777777 |
----------------------------
这个 jTable 有 ReorderingAllowed :
jTable1.getTableHeader().setReorderingAllowed(true);
我有一个按钮可以从 Colem "Name" 获取值:
for (int k = 0; k < jTable1.getRowCount(); k++) {
String qty = (String) jTable1.getValueAt(k, jTable1.getColumn("NAME").getModelIndex());
JOptionPane.showMessageDialog(null, "Name Is : " + qty);
}
它正在获取值如下:
Name Is : Adeeb
Name Is : Jack
但是,如果用户按照以下示例排列字段:
------------------------------
|ID | PHONE | Name |
------------------------------
| 1 | 0750220 | Adeeb |
| 2 | 0777777 | Jack |
------------------------------
它正在获取值如下:
Name Is : 0750220
Name Is : 0777777
我需要它像以前一样给我结果,所以我需要它来保持跟踪列“名称”并从中获取价值,即使用户重新排序它!
解决方案
通过这个修复它:
TableColumnModel tcms = jTable1.getColumnModel();
for (int k = 0; k < jTable1.getRowCount(); k++) {
int location = tcms.getColumnIndex(model.getColumnName(1));
String qty = (String) jTable1.getValueAt(k, location);
JOptionPane.showMessageDialog(null, qty);
}
推荐阅读
- javascript - jQuery错误无法读取未定义的属性“提交”
- java - 无法用经纬度计算距离
- jq - 如何在 jq 中捕获“$variable is not defined”?
- c# - 指令后仍然无法使用 C# 进行循环
- python - 在 postman 中使用 Python Requests 做 post 请求
- spring-boot - 无法在 docker 上运行 JavaFX 应用程序超过几分钟
- php - 无法使用 psr-4 自动加载 php 类
- c++ - 将负数和正数相加到 10^100000
- python - 'SnowflakeCursor' 对象没有属性 'to_dict'
- django - 为他的第一个连接重定向用户