我看到了一些關于這個問題的類似問題,但是,在這里似乎沒有一個對我有幫助。
我有一個帶有此掩碼“##-##-####”的 jFormattedTextField,并且我使用 dd-MM-yyyy 將日期發送到 PostgreSQL,該欄位用于出生日期。
當我使用普通的 jTextfield 并且用戶必須輸入“/”或“-”來分隔日、月和年時,可以檢查它是否為空,但是,在打開掩碼的情況下,我無法查看。
else if (jFormattedTextFieldDATA.getText().equals(""))
{
JOptionPane.showMessageDialog(null,"Por favor completar o campo Data"); //please complete date field
try {
conecta.conn.setAutoCommit(false);
conecta.conn.rollback();
} catch (SQLException ex) {
Logger.getLogger(Pessoa.class.getName()).log(Level.SEVERE, null, ex);
}
而且,這就是 netbeans 說錯誤的地方:
SimpleDateFormat formatter = new SimpleDateFormat ("dd-MM-yyyy");
java.util.Date utilDate = null;
try {
utilDate = formatter.parse(jFormattedTextFieldDATA.getText());
} catch (ParseException ex) {
Logger.getLogger(Pessoa.class.getName()).log(Level.SEVERE, null, ex);
}
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
pst.setDate(5, sqlDate);
pst.executeUpdate(); //executa o SQL
這是從 netbeans 得到的:
java.lang.NullPointerException:無法呼叫“java.util.Date.getTime()”,因為“utilDate”為空
uj5u.com熱心網友回復:
本JFormattedTextField應已具有配置的SimpleDateFormatter它會做的文本決議/格式化/驗證。
在這種情況下,您應該使用getValue而不是getText
java.util.Date utilDate = jFormattedTextFieldDATA.getValue();
if (utilDate != null) {
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
pst.setDate(5, sqlDate);
} else {
// I don't know what you want to do in this case...
}
pst.executeUpdate(); //executa o SQL
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/310815.html
上一篇:如何對同一指數進行分類
