Java应用程序中的错误 保存按钮的操作侦听器中的代码:

Java应用程序中的错误 保存按钮的操作侦听器中的代码:,java,joptionpane,Java,Joptionpane,我的问题是,当一个或两个文本字段留空时,键入的信息不能保存,必须弹出消息对话框“未完成输入”。它对于txt\u pass和txt\u name都是字符串,效果非常好,但是每当我将文本字段(txt\u userid)留空时,就会出现一个错误。为什么会这样?我也遇到了同样的问题,您可以通过先检查它是否为null来避免它。更改部分: if(txt_userid.getText().isEmpty() || (txt_pass.getText().isEmpty() || txt_name.getTex

我的问题是,当一个或两个文本字段留空时,键入的信息不能保存,必须弹出消息对话框“未完成输入”。它对于
txt\u pass
txt\u name
都是字符串,效果非常好,但是每当我将文本字段(
txt\u userid
)留空时,就会出现一个错误。为什么会这样?

我也遇到了同样的问题,您可以通过先检查它是否为
null
来避免它。更改部分:

if(txt_userid.getText().isEmpty() || (txt_pass.getText().isEmpty() || txt_name.getText().isEmpty())))
{
    JOptionPane.showMessageDialog(null, "Incomplete input!");
}
致:

此外,在现有的
try catch
之前添加一个
try catch

更改:

i= Integer.parseInt(txt_userid.getText());
s= txt_pass.getText();
n = txt_name.getText();
致:


当我将文本字段(txt_userid)留空时,它不会显示对话框(“不完整的输入!”)。创建并发布您的文本字段,以便我们看到真实代码的错误。它是否引发异常?您完全忽略了上述问题。没有人询问数据库类型。您在原始程序中提到了一个错误,我们正试图找出是什么错误,但您不告诉我们。为什么?最后。非常感谢。现在@manetsus,请阅读下面的内容,看看为什么这真的是一个重要的区别。它仍然不适用于txt_用户ID:(txt_userid是十进制类型,十进制和字符串是否有相同的代码?这不是
txt_userid
a按钮吗?请提供。txt_userid、txt_pass、txt_name是textfield的变量名。我已经更新了答案,试试这个。但是有一个问题,在
try
中使用大写字母“t”不会有编译错误吗de>在您的代码中尝试catch,可以。但是,请确认它是否工作。如果它不工作,请提供异常/错误详细信息。
if(txt_userid.getText()==null || txt_pass.getText()==null || txt_name.getText()==null || txt_userid.getText().isEmpty() || txt_pass.getText().isEmpty() || txt_name.getText().isEmpty())
{
    JOptionPane.showMessageDialog(null, "Incomplete input!");
}
i= Integer.parseInt(txt_userid.getText());
s= txt_pass.getText();
n = txt_name.getText();
try
{
    i= Integer.parseInt(txt_userid.getText());
    s= txt_pass.getText();
    n = txt_name.getText();
}
catch(Exception ex) {
    ex.printStackTrace(); // at least do it right
}