Java 如果稳定器不工作 我的If语句不起作用
基本上,我在表单中设计了一个按钮,当我执行所有操作时,应该将用户数据保存到数据库中,并显示一个对话框“保存数据”。一切都很好,现在我想插入一个条件,所以若用户并没有输入一个值,它将显示一个对话框,用户需要重新输入。现在的问题是,在显示对话框之前,它会检查我的状况,但当我按“确定”时,它会保存一个空值并显示“已保存数据”对话框。下面是我的代码:Java 如果稳定器不工作 我的If语句不起作用,java,swing,sqlite,if-statement,Java,Swing,Sqlite,If Statement,基本上,我在表单中设计了一个按钮,当我执行所有操作时,应该将用户数据保存到数据库中,并显示一个对话框“保存数据”。一切都很好,现在我想插入一个条件,所以若用户并没有输入一个值,它将显示一个对话框,用户需要重新输入。现在的问题是,在显示对话框之前,它会检查我的状况,但当我按“确定”时,它会保存一个空值并显示“已保存数据”对话框。下面是我的代码: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (txt_pangkat.getText().equals("")||icon_image1 == null) {
JOptionPane.showMessageDialog(null,"Please Insert a value");
dispose();
}
try {
String sql="insert into KKKB1 (Pangkat,Sains)values (?,?)";
pst=conn.prepareStatement(sql);
pst.setString(1, txt_pangkat.getText());
pst.setBytes(2, icon_image1);
pst.execute();
JOptionPane.showMessageDialog(null, "Data Saved");
txt_pangkat.setText("");
back();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
} finally {
try {
pst.close();
}
catch(Exception e){
}
}
}
将其余代码放入如下else语句:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (txt_pangkat.getText().trim().equals("")||icon_image1 == null) {
JOptionPane.showMessageDialog(null,"Please Insert a value");
dispose();
} else {
try {
String sql="insert into KKKB1 (Pangkat,Sains)values (?,?)";
pst=conn.prepareStatement(sql);
pst.setString(1, txt_pangkat.getText());
pst.setBytes(2, icon_image1);
pst.execute();
JOptionPane.showMessageDialog(null, "Data Saved");
txt_pangkat.setText("");
back();
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
finally {
try {
pst.close();
}
catch(Exception e){}
}
}
}
一种不常见(但优雅)的方法是使用(未充分使用)断言语句:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
try{
assert !txt_pangkat.getText().equals("");
assert icon_image1 != null;
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Please Insert a value");
dispose();
}
//rest of code...
}
哦,太多了,我没看到