NullPointerException

dadon511

Mitglied
Hallo!

Ich brauche die Daten aus JTable für weitere Berechnungen. Wenn eine Zelle der Tabelle leer ist, wird eine NullPointerException geworfen, dabei will ich genau das abfangen.
Das kommische ist, dass meine methode perfekt funktioniert, wenn die Daten der Tabelle aus einer csv-Datei importiert werden.

Hilfe

Code:
public void tabellePruefen()
    {        
        boolean abbruch = false;
        double inhaltx = 0, inhalty = 0;
        
        int row = tableModel.getRowCount();
        xWerte = new double[row];
        yWerte = new double[row];
        int i;
        while(ok == false)
        {
        for (i = 0; i < row ; i++) 
        {
            if (tabelle.isEditing())
            {
                tabelle.getCellEditor().stopCellEditing();
            }
            
            String x = tableModel.getValueAt(i,1).toString();
            String y = tableModel.getValueAt(i,2).toString();
            if(x.length()==0 || y.length()==0)
            {       
                JOptionPane.showMessageDialog(panelGebundeneHochrechnung, "Bitte alle Zellen der Tabelle ausfühlen!", 
                                                                                            null, JOptionPane.ERROR_MESSAGE, null );
                abbruch = true;
                
            }
            if (abbruch == false)
            { 
                try
                {        
                    xWerte[i] = Double.parseDouble(x.replace(',','.'));
                    yWerte[i] = Double.parseDouble(y.replace(',','.'));
                }
                catch(NumberFormatException error)
                    {
                        JOptionPane.showMessageDialog( panelGebundeneHochrechnung, "Bitte nur Zahlen in die Tabelle eintragen!", 
                                                                                null, JOptionPane.ERROR_MESSAGE, null );
                        abbruch = true;
                    }
            }
      }
        if(abbruch == true)
        {
            break;
        }
       
            ok = true;
        }
    }
 
Passiert das bei " String x = tableModel.getValueAt(i,1).toString();" ? Dann ist "toString" das Problem, denn "tableModel.getValueAt(i,1)" gibt "the value Object at the specified cell" (laut Java Doc) zurück, ist das null, wird "toString" auf nichts angewendet, und daraus folgt eine NullPointerException.

Zuerst also den Wert holen, schauen ob Null zurückgegeben wurde, und falls nicht, weiter mit "toString" arbeiten.
 
Hallo!

Habe es jetzt so gemacht:
Code:
for(int i = 0; i < row; i++)
            {
                Object x = tableModel.getValueAt(i, 1);
                Object y = tableModel.getValueAt(i, 2);
                if(x == null || y == null)
                {
                    JOptionPane.showMessageDialog(panelGebundeneHochrechnung, "Bitte alle Zellen der Tabelle ausf\374hlen!", null, 0, null);
                    abbruch = true;
                }

Ist es ok?
 
Zurück