通过JTable单元的空指针异常

时间:2014-04-19 22:05:23

标签: java swing jtable

我有一个程序,我可以通过JTable将数据输入数据库。我希望能够输入最多10个单词/定义组合。如果我想输入少于那个,那么单元格就在那里,但是当它保存数据库中的信息时,这不应该对程序产生影响。

我有以下设置:

2列:单词和定义& 10行:10种不同的单词和定义组合

我能够让下面的代码完成一行。我将0和1硬编码到y坐标中以从两列中获取信息。但是,我希望能够输入多个单词/定义(即输入多行数据然后保存它们)。所以,我编写了下面的代码,但我在null pointer exception处得到if loop。我已经手动绘制了坐标,确保检查单元格是否为空并使用调试器找出异常弹出的位置。它看到第一个空行是好的,因为我不想保存空白条目,但如果我检查单元格是否为空,我不应该收到此错误。它应该跳过它并尝试下一个单元格。任何人都可以解释为什么会发生这种情况吗?

由于

public void updateDB() throws SQLException {
        Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/brainstormer", "me", "me");
        Statement stmt = con.createStatement();
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 11; j++) {
                if (!" ".equals(glossary.getValueAt(j, i).toString())) {
                    String word = glossary.getValueAt(j, i).toString();
                    String definition = glossary.getValueAt(j, i).toString();
                    stmt.executeUpdate("INSERT INTO APP.GLOSSARY VALUES('" + word + "','" + definition + "')");

                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

进行空检查以避免NullPointerException,如下所示:

if (glossary.getValueAt(j, i) != null 
       && glossary.getValueAt(j, i).toString().trim().length() != 0) {...}