如何向包含呈现为复选框的布尔值的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






