java - JTable 中未选中的复选框会给出 NullPointerException

标签 java swing checkbox jtable

我创建了一个 JTable,最后(第六)列是带有复选框的“选择”列。通过重写 getColumnClass 方法以返回 Boolean.class 来添加复选框。

    DefaultTableModel dtm = new DefaultTableModel(data, header){
            @Override
            public Class<?> getColumnClass(int col) {
                if(col == 5){
                    return Boolean.class;
                }
                return super.getColumnClass(col);
            }
        };

现在我必须使用这些复选框选择一些行,并将这些选定行中的一些值添加到数据库中。这是我使用的代码。

DefaultTableModel model = (DefaultTableModel) tblInvoiceList.getModel();
for(int i=0; i<model.getRowCount();i++) {
    if ((Boolean)model.getValueAt(i, 5))
        paydao.updateInvoiceWithPayment(model.getValueAt(i, 0).toString());
}

当我循环时,选中的复选框返回 true。未经检查的会抛出 NullPointerException。异常发生在 (Boolean)model.getValueAt(i, 5) 部分。如何让未勾选的返回false?

最佳答案

默认的表格单元格编辑器最初可能接受null,但您的循环不接受。如图herehere ,当您获取表的数据时,呈现为未选中的模型值应显式设置为 Boolean.FALSEfalse

关于java - JTable 中未选中的复选框会给出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956597/

相关文章:

java - JPanel 文本的搜索栏

java - 通过不同的线程更新java UI

javascript - 根据复选框检查从另一个数组中删除数组

php - 复选框 "checked"值与 session 和数据库值冲突 PHP

html - 如何使我的自定义复选框可访问?

Java 字符串从 URL 地址截断

java - Android 应用程序的 HashMap 替代品

java - 在java中创建类的实例时遇到问题

java - 将元素添加到 JList 时如何获取要在 JTextfield 中显示的整数值

java - 如何制作指定尺寸的JInternalFrame?