繁体   English   中英

JTable - Checkbox添加动作侦听器

[英]JTable - Checkbox add action listener

我创建了一个简单的JTable带有如下复选框:

DefaultTableModel model = new DefaultTableModel();
jTable1.setModel(model);

model.addColumn("No:", no1);
model.addColumn("Remark", remark1);
model.addColumn("Color", colors1);
model.addColumn("Done");

TableColumn col1 = jTable1.getColumnModel().getColumn(0);
col1.setPreferredWidth(1);

TableColumn col4 = jTable1.getColumnModel().getColumn(3);
col4.setCellEditor(jTable1.getDefaultEditor(Boolean.class));
col4.setCellRenderer(jTable1.getDefaultRenderer(Boolean.class));
col4.setPreferredWidth(50);

jTable1.setShowGrid(true);
jTable1.setGridColor(Color.BLACK);
jTable1.setAutoCreateRowSorter(true); 

它工作正常,但如果我想为复选框添加动作监听器该怎么办。 例如,当我选中我的复选框时,我需要弹出一条确认消息。

例如,当我选中我的复选框时,我需要弹出一条确认消息。

您不需要向渲染器/编辑器添加ActionListener ,但您需要监听表模型数据更改。 看看如何使用表格的 倾听数据更改部分教程:

编辑

请注意,在这种情况下,当你使用布尔值时,有两个可能的值来进行检查。 但是,对于其他情况下的输入验证,所描述的过程将不起作用,因为当更改已经发生时将通知侦听器,并且您将无法再将值设置回来因为它不再存在。

看看@ kleopatra对这个问题的回答: JTable输入验证器 如上所述,更好的方法是提供自定义CellEditor并在stopCellEditing()方法实现中进行验证。 正如建议我使用DefaultCellEditor ,它将JCheckBox作为参数并覆盖上述方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM