文档监听器带来空指针异常

Posted

技术标签:

【中文标题】文档监听器带来空指针异常【英文标题】:Document listener brings a null pointer exception 【发布时间】:2016-04-26 01:29:36 【问题描述】:

我使用了一个文档监听器,它给我带来了一个空指针异常。我怎么能阻止这个异常。我用它来搜索表格的一些内容。使用它我可以搜索相关内容。这也给我带来了一个空指针异常。

这些是步骤,

一开始,

Vector originalTableModel;
DocumentListener documentListener;

在辅导员中,

originalTableModel = (Vector) ((DefaultTableModel) list_table.getModel()).getDataVector().clone();
//add document listener to jtextfield to search contents as soon as something typed on it
addDocumentListener();

我的文档监听器方法,

private void addDocumentListener()
   documentListener = new DocumentListener()
      public void changedUpdate(DocumentEvent documentEvent)
           search();
      

      public void insertUpdate(DocumentEvent documentEvent)
           search();
      

      public void removeUpdate(DocumentEvent documentEvent)
           search();
      

      private void search()
           searchTableContents(search_field.getText());
      

   ;

我的搜索方法,

public void searchTableContents(String searchString)

    DefaultTableModel currtableModel = (DefaultTableModel) list_table.getModel();
    //To empty the table before search
    currtableModel.setRowCount(0);
    //To search for contents from original table content
    for (Object rows : originalTableModel)
    
        Vector rowVector = (Vector) rows;
        for (Object column : rowVector)
        

                if **(column.toString().toLowerCase().contains(searchString.toLowerCase())**)
                

                    //content found so adding to table
                    currtableModel.addRow(rowVector);
                    break;
                


        
    

这是我调用这个方法的地方,

private void search_fieldKeyReleased(java.awt.event.KeyEvent evt)                                                      
                                                          
    // TODO add your handling code here:
    searchTableContents(search_field.getText());

我加粗了我得到这个空指针异常的地方。

有什么想法吗?

【问题讨论】:

What is a Null Pointer Exception, and how do I fix it?的可能重复 调试这一行,看看哪个变量为空。我猜是“searchString” @Marcinek : - 那么我能做些什么来恢复它呢? 【参考方案1】:

您的column 变量很可能为空。如果表格中至少有一个单元格为空,就会出现这种情况。此外,由于originalTableModel 在构造函数中被视为表模型的克隆,因此自克隆被执行到searchTableContents 运行时的任何更改都不会反映在originalTableModel 中。

要修复它,您应该将 if 更改为 if (column != null && column.toString().toLowerCase().contains(searchString.toLowerCase()))

【讨论】:

你所说的“&& ...”是什么意思?

以上是关于文档监听器带来空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

由于在编辑器类中设置 onClick 侦听器时出现空指针异常,Android 应用程序崩溃

尝试通过 websocket 转换和发送时出现空指针异常

jsp 505空指针异常

Collectors.toMap空指针异常

java中的空指针异常怎么解决

SpringBoot配置拦截器空指针异常