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