如何向包含呈现为复选框的布尔值的JTable的单元添加鼠标侦听器

我有一个JTable,它带有一个实现了AbstractTableModel的自定义模型。

public abstract class AbstractTable extends AbstractTableModel{

public Class<? extends Object> getColumnClass(int c) {}

}

因为我已经实现了getColumnClass方法,所以布尔值像复选框一样呈现在表中。我想拦截复选框的状态更改,但是不幸的是,我无法直接添加鼠标侦听器,因为我没有对复选框本身的引用,它不是由我创建的。

如何设置鼠标侦听器以拦截复选框状态更改事件?

编辑:

@jzd答案是正确的。我可以捕获setValue方法中的更改。但是我想知道如何实现基于鼠标侦听器的方法。

回答:

特别是,我想避免将逻辑放在里面setValue()

在此可选值示例中,该setValue()方法不会被覆盖,

除了更新内部数据结构并触发适当的事件外

ValueEditor扩展AbstractCellEditor和实现ItemListener,而ValueRenderer扩展JCheckBox。通过这种方式,编辑者可以在编辑器的JCheckBox内部收听渲染器的声音itemStateChanged()

附录:添加a

CellEditorListener是另一种方法,此处显示为JTree。请注意,JTable本身是个CellEditorListener

以上是 如何向包含呈现为复选框的布尔值的JTable的单元添加鼠标侦听器 的全部内容, 来源链接: utcz.com/qa/398015.html

回到顶部