【问题标题】:Mutually Exclusive CellEditors in JTableJTable 中的互斥单元格编辑器
【发布时间】:2010-12-22 19:00:25
【问题描述】:

我目前有一个问题,即在 JTable 中编辑一个单元格的内容会改变另一个单元格的内容;其中两列是互斥的。它们都是复选框。

目前,如果我更改一个单元格,直到另一个单元格被重绘后它才会更新。因此,该行中的两个单元格都可以显示为在任何时候被选中。这可以通过调用 updateUI() 来克服,但它很慢而且通常不是一个好主意。

有没有人有任何提示或建议?

【问题讨论】:

  • 遗憾的是,解决方案需要在 Java 1.4 中
  • 目前并不完全清楚正在发生的事情与您的预期行为是什么。能否提供一些示例代码?

标签: java jtable tablecelleditor


【解决方案1】:

听起来您应该使用 TableModelListener 来监听 TableModel 的更改。当一个复选框被更改时,您将收到一个更新事件,然后您将使用 model.setValueAt(...) 更新另一个复选框。模型负责通知视图重新绘制单元格。

【讨论】:

  • 我在 TableModel 中添加了一个 TableModelListener。但是,它似乎只在添加/删除对象时触发,而不是在对象的属性发生更改时触发......有什么想法吗?
  • 默认表编辑器不会修改对象,它总是根据列的类创建一个新对象(字符串、日期、整数)。如果您使用的是自定义编辑器,那么我不知道您的代码在做什么。如果您需要更多帮助,请发布您的 sscce.org (SSCCE) 来证明问题。
猜你喜欢
  • 2011-09-27
  • 2023-03-23
  • 2010-12-07
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
相关资源
最近更新 更多