如何检查 jFormattedTextField 是否为空?
How to check if a jFormattedTextField is empty?
我看到了一些关于这个的类似问题,但是,none 似乎对我有帮助。
我有一个带有此掩码“##-##-####”的 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”为空
JFormattedTextField
应该已经配置了 SimpleDateFormatter
,它将执行文本的 parsing/formatting/validation。
在这种情况下,您应该使用 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
我看到了一些关于这个的类似问题,但是,none 似乎对我有帮助。
我有一个带有此掩码“##-##-####”的 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”为空
JFormattedTextField
应该已经配置了 SimpleDateFormatter
,它将执行文本的 parsing/formatting/validation。
在这种情况下,您应该使用 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