#java #swing #netbeans #joptionpane
#java #swing #netbeans #joptionpane
Вопрос:
в настоящее время я работаю над кодом для Java netbeans для создания функционирующей формы входа. мой код работает отлично, но единственная проблема в том, что моя проверка работает не так, как я хочу. например, когда я оставляю текстовое поле имени пользователя для своей формы. он показывает мне приглашение ввести учетные данные. но как только я нажимаю отклонить это приглашение. он отправляет форму с пустым текстовым полем. Вот мой код ниже :
что я делаю не так?
try{
String username;
username = usernameTxt.getText();
String password;
password= new String (passwordTxt.getText());
if(username.equals("")){
JOptionPane.showMessageDialog(null,"Please Enter Your Username.");
}
if(password.equals("")){
JOptionPane.showMessageDialog(null,"Please Enter Your Password.");
}
String confirmpassword = new String (confirmpassTxt.getText());
if(password.equals(confirmpassword)){
confirmpassLab.setText("");
}
else {
confirmpassLab.setText("PASSWORD DOES NOT MATCH.");
}
PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter("ResidentLoginCredentials.txt",true))); // TRUE is to get all the information from the form to send it into the database. this code is to send the information to the databse
pw.println(username); // passing that value to the file
pw.println(password); // passing the name value to the database
pw.close();
JOptionPane.showMessageDialog(this,"Your Account Has Been Successfully Registered.","File Message", JOptionPane.INFORMATION_MESSAGE);
usernameTxt.setText("");
passwordTxt.setText("");
this.setVisible(false); // this makes the current form disappear and the new form to open
residentassignunit ru = new residentassignunit(); // this codes are to redirect user to another form
ru.setVisible(true);
}
catch(IOException e)
{
JOptionPane.showMessageDialog(this,"File Not Found","File Error Message Box",JOptionPane.ERROR_MESSAGE);
}
Комментарии:
1. Ну, проблема именно в том, что вы описываете: несмотря на то, что значения недопустимы, вы продолжаете выполнять остальную часть метода. Вам нужно вернуть или использовать
else
блок. Вам также необходимо правильно расставить отступы в вашем коде, чтобы вы могли прочитать его и понять его структуру.2. Сделайте правильный отступ в своем коде, чтобы более четко понимать свой код. Затем поставьте точку останова в строке после того, как вы отклоните приглашение, и медленно отлаживайте построчно, чтобы понять, где ваша программа принимает неправильный оборот.
Ответ №1:
try{
String username;
username = usernameTxt.getText();
String password;
password= new String (passwordTxt.getText());
if(username.equals("")){
JOptionPane.showMessageDialog(null,"Please Enter Your Username.");
}else if(password.equals("")){
JOptionPane.showMessageDialog(null,"Please Enter Your Password.");
}else if(!password.equals(confirmpassword)){
confirmpassLab.setText("PASSWORD DOES NOT MATCH.");
}else{
String confirmpassword = "";
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("ResidentLoginCredentials.txt",true))); // TRUE is to get all the information from the form to send it into the database.this code is to send the information to the databse
pw.println(username); // passing that value to the file
pw.println(password); // passing the name value to the database
pw.close();
JOptionPane.showMessageDialog(this,"Your Account Has Been Successfully Registered.","File Message", JOptionPane.INFORMATION_MESSAGE);
usernameTxt.setText("");
passwordTxt.setText("");
this.setVisible(false); // this makes the current form disappear and the new form to open
residentassignunit ru = new residentassignunit(); // this codes are to redirect user to another form
ru.setVisible(true);
}
}
catch(IOException e)
{
JOptionPane.showMessageDialog(this,"File Not Found","File Error Message Box",JOptionPane.ERROR_MESSAGE);
}