【问题标题】:JTable multiselect loses selection when table data changes表数据更改时 JTable 多选丢失选择
【发布时间】:2015-09-18 02:41:59
【问题描述】:

JTable 显示对象数组中的数据。对象数据在后台更改,表格更新。选择行并更改表数据时,丢失了行选择。 It is difficult for the user to select rows for an action when the selections are frequently lost.

有没有办法停止取消选择?

【问题讨论】:

  • 您使用什么事件来更新表格?是否考虑过在有选定行时暂停更新?如果我选择的行 tat 更新/更改会怎样?
  • 对表模型中的方法的调用调用了对 fireTableDataChanged 的​​调用。有没有办法检测选择的行?
  • 是的,但是,如果从所选模型中删除一行会发生什么?您真正拥有的唯一信息是索引。此外,您不应该对 TableModel 中的选择模型做任何事情

标签: java swing jtable


【解决方案1】:

这是我使用调试器发现的。在调用 fireTableDataChanged 期间,行选择被清除,我用它来应用表中的更新。

显然,该方法会重绘表格,并且选择可能无效(如上面的 MadProgrammer 评论所建议的那样)。添加或删除对象(行)时,我仍然需要该功能。

所以我必须做的是找到一种方法来通知表模型进行更新而不清除选择。我现在选择在应用不需要重组表的更新时使用 fireTableRowsUpdated,否则使用 fireTableDataChanged。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 2023-03-29
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多