在 Java Swing 中,我创建了一个 JTable
,它使用扩展 DefaultTableModel
的表模型类。由于表中一行的值是 boolean 类型,因此这些值显示为复选框。由于我想向这些复选框添加“项目监听器”类,因此我确实需要初始化每个复选框。但如果这些是由表模型自动创建的,我该怎么办?
最佳答案
由于这些复选框更改了基础数据,因此添加 TableModelListener
就足够了并对该列的 tableChanged
事件使用react。
jTable1.getModel().addTableModelListener(new TableModelListener() {
final int YOUR_BOOLEAN_COLUMN = 1;
public void tableChanged(TableModelEvent e) {
if(e.getColumn() == YOUR_BOOLEAN_COLUMN) {
// get value from model (not affected if user re-orders columns)
TableModel tableModel = jTable1.getModel();
Boolean value =
(Boolean)tableModel.getValueAt(e.getFirstRow(), YOUR_BOOLEAN_COLUMN);
System.out.println(value);
}
}
});
关于java - 当 JCheckBox 由表模型生成时初始化它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2178375/