java - 找不到正确的匹配时,java程序崩溃

标签 java swing postgresql crash

其实我从来没有遇到过这样的问题,但是这次让我不舒服。

该程序从用户那里获取一个文本字段,并从SQL(PostgreSQL)中搜索正确的匹配项。它工作正常,但是当我输入数据库中未包含的内容,程序崩溃或正在发生某些事情时,我的意思是它没有任何响应。如果可能有帮助,请参见代码的相关部分:

public void actionPerformed(ActionEvent e)
{
    String path = null;
    JButton clicked = (JButton) e.getSource();
    if (clicked == loadButton) {
        try {
            PreparedStatement st = connect.prepareStatement("select * from databank where code=?");
            st.setString(1, field.get(0).getText());
            ResultSet rs = st.executeQuery();
            while (rs.next()) {
                for (int i = 0; i < field.size(); i++) {
                    if (i < 7)
                        field.get(i).setText(rs.getString(i + 1));
                    else if (i > 6 && i < 10)
                        field.get(i).setText(Double.toString(rs.getDouble(i + 1)));
                    else if (i > 9 && i < 14)
                        field.get(i).setText(Integer.toString(rs.getInt(i + 1)));
                    else if (i > 13)
                        field.get(i).setText(rs.getString(i + 1));
                    path = rs.getString(15);
                }
            }
            rs.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "Error Code = 0020");
        } finally {
            imageHold.setIcon(new ImageIcon(path));
            SwingUtilities.updateComponentTreeUI(frame);
            SwingUtilities.updateComponentTreeUI(imageHold);
        }
    }
}

我想念什么?我该如何解决?

编辑:

这是堆栈跟踪。

Uncaught error fetching image:
java.lang.NullPointerException
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:101)
    at sun.awt.image.FileImageSource.getDecoder(FileImageSource.java:53)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)

最佳答案

我已经解决了这个问题,当我的图像列在数据库中为空时,

imageHold.setIcon( new ImageIcon( path ) );



这使nullpointer异常。

我做到了:
if( path != null )
    imageHold.setIcon( new ImageIcon( path ) );

问题解决了。

关于java - 找不到正确的匹配时,java程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27995151/

相关文章:

java - 在实现具有两个职责的接口(interface)的类上实现单一职责原则

java - 为什么 getContentPane().getWidth() 返回 0?

database - 如何通过索引而不是过滤器搜索日期列?

java - 如何从 Java 文本文件中读取单个单词(或行)?

java - 确保相机预览大小/宽高比与生成的视频相匹配

java - 如何使用 Mouselistener?移动按钮?

postgresql - Heroku pgbackups :restore: an error occurred and your restore did not finish

json - 尝试使用带有更新/插入的 RETURNING 从 plpgsql 函数返回时出错

java - 无法理解以下简单程序的输出

java - 是否可以在创建 JWindow 后将其父级设置为 JWindow?