gpt4 book ai didi

java - 删除连续行后动态更新 JTable 行

转载 作者:行者123 更新时间:2023-11-30 04:27:19 25 4
gpt4 key购买 nike

我有一个 JTable,我正在向该 JTable 动态插入行。经过一些用户干预后,将插入一个新行。然后我将调用一个函数,其参数作为选定的行号,在该函数内,我有一些代码将相应地更新同一行。每个行插入和行值更新代码将在单独的线程中运行。

public void updateRow(int row,JTable myTable)
{
String text = "";
//After lot of processing, setting the table cell value at the 'row' on the 4th column
myTable.setValueAt(text, row, 4);
}

我面临的问题如下,

如果用户删除任何行,则行的位置将发生变化,此时如果函数 updateRow() 尝试更新其他行,则会因行数变化而失败。

假设我一次有 3 行,并且每行的 updateRow 正在进行中。

updateRow(0,userTable);//For the 1st row
updateRow(1,userTable);//For the 2nd row
updateRow(2,userTable);//For the 3rd row

并假设第二行的 updateRow() 已完成。这将导致第三行的 updateRow() 函数出现问题。因为,它的行值为 '2' 。由于第三行被删除,因此没有第三行,这反过来导致以下代码失败

myTable.setValueAt(text, row, 4);//Currently, row has the value as '2'

任何人都可以建议我如何相应地跟踪行值的行更新,即使行的位置动态更改?

提前致谢。

最佳答案

不要依赖 View 的行号,而是直接对模型进行操作,如 @mKorbel 的评论中所建议的;如果你改变模型, View 也会随之改变。正如所讨论的here ,“JTable 提供了从模型坐标转换为 View 坐标的方法 — convertColumnIndexToViewconvertRowIndexToView — 以及从 View 坐标转换为模型坐标的方法 — convertColumnIndexToModelconvertRowIndexToModel

关于java - 删除连续行后动态更新 JTable 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15540082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com