NullPointerException bei Suche in JTable

dbzworld

Grünschnabel
Hallo Zusammen,
ich habe mir einen Kalender mit einem JTable gebastellt,
nun möchte in der Tabelle nach einem Datum suchen, obwohl es simpel ist erhalte ich eine NullPointerException und ich kann nicht nachvollziehen warum...:confused:
vielleicht sieht ihr es ja:
PHP:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
         int rows = ((DefaultTableModel)tabelle.getModel()).getRowCount();
         int col = ((DefaultTableModel)tabelle.getModel()).getColumnCount();
         for(int i=0;i<rows;i++)
            {
                for(int j=0;j<col;j++){
                        String value = (String)((DefaultTableModel)tabelle.getModel()).getValueAt(i,j);
                        if(value.equals("14"))
                        {
                          status2.setText("gefunden");
                          break;
                        }
                }
            }    
    }

vielen dank vorab!
 
Hallo,

es wäre hilfreich zu wissen, in welcher Zeile die NPE geworfen wird. Aber ich vermute einfach, dass value auch mal null sein kann. Deswegen kann es in der nächsten Zeile (value.equals("14")) zur einer NullPointerException kommen. Wenn das der Fall ist, kannst du die Abfrage einfach umdrehen:
Java:
if("14".equals(value))
oder eine Sicherheitsabfrage machen:
Java:
if(value != null && value.equals("14"))

Grüße
Vincent
 
vielen dank erstmal, das mit null stimmt, denn es gibt Zellen ohne Inhalt...
jedoch bekomme nun eine weitere Exception:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
in Zeile 7, welches eigentlich nicht auftreten dürfte da getValue Object liefert und das Casting nach String in Ordnung ist...:confused:
 
Laut Exception ist es ein Integer, und den kannst du nicht einfach nach String casten. Stattdessen würde ich bei Object bleiben:
Java:
Object value = ((DefaultTableModel) tabelle.getModel()).getValueAt(i,j);
if (value != null && value.equals("14"))

Grüße
Vincent
 
Zurück