1

嗨,我在运行程序时收到 Nullpointer 错误。我在这个网站上发现了一篇帖子,我认为它可以解决来自 JCalander Combobox 的 Null Pointer Exception问题我使用了此页面中的建议,但仍然收到错误消息。有人可以告诉我哪里出错了吗?

    String end;
    if (jTimeButton3 != null) {
        SimpleDateFormat dateFormatTime2 = new SimpleDateFormat("hh:mm a");
        end = dateFormatTime2.format(jTimeButton3.getTargetDate());
        endTime.setText(end);
    } else {
        JOptionPane.showMessageDialog(
                null, "Please select a End Time.");

        return;
    }
4

3 回答 3

3

你得到一个 NullPointerException 因为你jTimeButton3.getTargetDate()是 Null:

您可以通过测试日期来修复它:

String end;
if (jTimeButton3 != null && jTimeButton3.getTargetDate() != null) {
    SimpleDateFormat dateFormatTime2 = new SimpleDateFormat("hh:mm a");
    end = dateFormatTime2.format(jTimeButton3.getTargetDate());
    endTime.setText(end);
} else {
    JOptionPane.showMessageDialog(
            null, "Please select a End Time.");

    return;
}
于 2013-06-09T02:44:18.257 回答
0

您的代码看起来不错,只是您应该检查 endTime 引用,它可能为 null 并且您正在调用 setText 。在它周围放置一个空指针检查以解决问题。

于 2013-06-09T02:42:47.303 回答
0

仔细看看你的代码,你会发现几乎 100% 的候选者都是 NPE:

这是您的代码:

String end;
    if (jTimeButton3 != null) {
        SimpleDateFormat dateFormatTime2 = new SimpleDateFormat("hh:mm a");
        end = dateFormatTime2.format(jTimeButton3.getTargetDate());
        endTime.setText(end);
    } else {
        JOptionPane.showMessageDialog(
                null, "Please select a End Time.");

        return;
    }

jTimeButton3 没有抛出 NPE,因为您正在检查if语句,dateFomatTime2也是 != null,这意味着这endTime是我们的候选者,所以我建议您发布代码的另一部分。

注意:仅当您确定 NPE 在您发布的代码中时,此答案才有用

于 2013-06-09T02:46:38.520 回答