我使用文檔偵聽器,它給我帶來了空指針異常。我怎麼能阻止這個異常。我用它來搜索表格的一些內容。通過使用這個我可以搜索相關的內容。這也給我帶來了一個空指針異常。文檔偵聽器帶來空指針異常
這些步驟,
在開始的時候,
Vector originalTableModel;
DocumentListener documentListener;
在counstructor,
originalTableModel = (Vector) ((DefaultTableModel) list_table.getModel()).getDataVector().clone();
//add document listener to jtextfield to search contents as soon as something typed on it
addDocumentListener();
我的DocumentListener方法,
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());
}
我大膽的在那裏我得到了這個空指針異常點。
有什麼想法嗎?
可能重複[什麼是空指針異常,以及如何解決它?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how -do-i-fix-it) – Marcinek
調試這一行,並查看哪個變量爲空。我猜這是「searchString」 – Marcinek
@Marcinek: - 那麼我能做些什麼來恢復它? – Barrier