【发布时间】:2015-01-17 01:15:55
【问题描述】:
其实我从来没有遇到过这样的问题,但这一次让我很不舒服。
程序从用户那里获取一个文本字段,并从 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)
【问题讨论】:
-
updateComponentTreeUI并没有按照你的想法做,它不应该被用来对 UI 状态进行基本更新,而且效率很低 -
您还没有打印完整的堆栈跟踪,特别是涉及您的代码的部分,也没有指出哪一行导致了异常。再次,请帮助我们。
-
@RoeyGolzarpoor:那行没有用,因为那是 Java 核心类 FileInputStream.java 的第 138 行。
-
当
imageHold.setIcon( new ImageIcon( path ) );调用时,path的值似乎是null(猜测) -
“如果你告诉我为什么我会记住我做错了什么,它会避免下一个错误”如果你将鼠标箭头悬停在向下投票按钮上,你会看到什么时候应该使用它,并且其中之一情况是问题“不清楚”。如果您发布的这个问题stacktrace不完整,它缺少最重要的信息:您的代码中的哪一行抛出异常以及该行包含什么代码,所以我们只能在guess-where-my中玩-error-是没有多少人喜欢的游戏。
标签: java swing postgresql crash