diff --git a/src/fxml/Login.fxml b/src/fxml/Login.fxml index f7673823fbd8dbcc6d63b056fe847f1f86cbff51..ce2e46da36c14fe08be71238bb0db97fba1088de 100644 --- a/src/fxml/Login.fxml +++ b/src/fxml/Login.fxml @@ -98,9 +98,9 @@ - diff --git a/src/imgzip/LoginSignIn/ChangePassword.java b/src/imgzip/LoginSignIn/ChangePassword.java index eb440ea4ed51d4dd3516fb6d608f5444fe51930f..a720f9c422a3d9e5ed17f74e97539e66df13ddcd 100644 --- a/src/imgzip/LoginSignIn/ChangePassword.java +++ b/src/imgzip/LoginSignIn/ChangePassword.java @@ -10,6 +10,8 @@ import javafx.stage.Stage; /** @Author: 肖尧 @Date: 2019.12.12 + + 改变密码的页面类,写成构造方法形式被调用。 */ public class ChangePassword { @@ -37,6 +39,13 @@ public class ChangePassword { } } +/** + @Author: 肖尧 + @Date: 2019.12.12 + + 提醒用户成功改变密码的页面类,写成构造方法形式被调用。 + */ + class ChangePasswordSuccessfully{ public ChangePasswordSuccessfully(){ diff --git a/src/imgzip/LoginSignIn/CreateAccount.java b/src/imgzip/LoginSignIn/CreateAccount.java index cab5f16d98c9fccfa03983eb10eb3bd4181f3813..0d61947b0474beddd76eac83e35f0d0adb059571 100644 --- a/src/imgzip/LoginSignIn/CreateAccount.java +++ b/src/imgzip/LoginSignIn/CreateAccount.java @@ -19,6 +19,8 @@ import java.sql.ResultSet; /** @Author: 肖尧 @Date: 2019.12.4 + + 提供用户创造密码的页面类,通过调用构造方法创建。 */ public class CreateAccount { @@ -39,6 +41,10 @@ public class CreateAccount { already.setVisible(false); already2.setVisible(false); createAccount.setDisable(true); + /** + * change方法:当account输入框失去/得到焦点时,检查一次是否与数据库中的某个账号重复 + * 保证账号的唯一性。 + */ userName.focusedProperty().addListener(new ChangeListener() { @@ -101,6 +107,12 @@ public class CreateAccount { } }); + /** + email的change方法: + 当email输入框失去\获得焦点时,检查email框输入的值是否符合邮箱格式,以及是否已经在数据库中存在。 + 保证格式正确以及数据库中数据唯一性。 + */ + email.focusedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { @@ -108,10 +120,10 @@ public class CreateAccount { if(checkIfIsEmail(email.getText())){ if(already2.getText().equals("Invalid email!")){ - already2.setText("Already taken!!"); + already2.setText("Already taken!"); } - if (already2.isVisible()){ + if (already2.isVisible() || "".equals(email.getText())){ already2.setVisible(false); } @@ -164,12 +176,15 @@ public class CreateAccount { }else{ - if("Already taken!!".equals(already2.getText())){ + if("Already taken!".equals(already2.getText())){ already2.setText("Invalid email!"); } - if("".equals(already2.getText())){ + if("".equals(email.getText())){ already2.setVisible(false); + if(!createAccount.isDisable()){ + createAccount.setDisable(true); + } }else { @@ -181,8 +196,6 @@ public class CreateAccount { createAccount.setDisable(true); } - - } } } @@ -203,7 +216,9 @@ public class CreateAccount { } - + /** + * 检查邮箱格式是否正确. + */ public boolean checkIfIsEmail(String email){ String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; @@ -218,6 +233,13 @@ public class CreateAccount { } +/** + @Author: 肖尧 + @Date: 2019.12.12 + + 提醒用户成功改变密码的页面类,写成构造方法形式被调用。 + */ + class CreateSuccessfully{ public CreateSuccessfully(){ diff --git a/src/imgzip/LoginSignIn/CreateAccountController.java b/src/imgzip/LoginSignIn/CreateAccountController.java index 5822ba6b062820c50d4cf1a7fc8d62b3a31e5cd7..b18aef06df0eae362db1015d326f79575f351e12 100644 --- a/src/imgzip/LoginSignIn/CreateAccountController.java +++ b/src/imgzip/LoginSignIn/CreateAccountController.java @@ -222,16 +222,13 @@ public class CreateAccountController { * 检查是否点击了同意privacy协议,如果不同意,则无法点击 createaccount 按钮。 */ public void checkIfSelectedPrivacy(){ - if(!judgeAccountExists && !judgeEmialexist && createAccount.isDisable() && !already2.isVisible() && !already.isVisible()){ - createAccount.setDisable(false); - } boolean userNmae = "".equals(userName.getText()); boolean emial = "".equals(email.getText()); - if(!agree.isSelected() || userNmae || emial ){ - createAccount.setDisable(true); + if(agree.isSelected() && !userNmae && !emial && createAccount.isDisable() && !already.isVisible() && !already2.isVisible()){ + createAccount.setDisable(false); } } diff --git a/src/imgzip/LoginSignIn/DataBaseController.java b/src/imgzip/LoginSignIn/DataBaseController.java index 2e6a98fa761dcca49d2579b62fb0772bebd8d811..a5980f5227e04c0a77bb19094d69064c70faca70 100644 --- a/src/imgzip/LoginSignIn/DataBaseController.java +++ b/src/imgzip/LoginSignIn/DataBaseController.java @@ -4,6 +4,12 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; +/** + @Author: 肖尧 + @Date: 2019.12.12 + + 数据库操作继承类,用于数据库各项操作。 + */ public class DataBaseController { diff --git a/src/imgzip/LoginSignIn/FindPassword.java b/src/imgzip/LoginSignIn/FindPassword.java index adb4586086324c2582d84125ef96b1f7fdc9ba39..ba70bfc4fa6e03dcd5229faca8a2959678573da0 100644 --- a/src/imgzip/LoginSignIn/FindPassword.java +++ b/src/imgzip/LoginSignIn/FindPassword.java @@ -6,6 +6,12 @@ import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage; +/** + @Author: 肖尧 + @Date: 2019.12.12 + + 验证用户,决定用户是否可以改变密码的页面类,写成构造方法形式被调用。 + */ public class FindPassword { public FindPassword(){ diff --git a/src/imgzip/LoginSignIn/GlobalStringManager.java b/src/imgzip/LoginSignIn/GlobalStringManager.java index 891f7b1c7185f522d0436641b31f0e9a0a382660..d66c9b928690b6558c0dcd08ed6bfc95eaa1603b 100644 --- a/src/imgzip/LoginSignIn/GlobalStringManager.java +++ b/src/imgzip/LoginSignIn/GlobalStringManager.java @@ -1,5 +1,12 @@ package imgzip.LoginSignIn; +/** + @Author: 肖尧 + @Date: 2019.12.12 + + 全局变量类,用于项目内页面之间的信息传递。 + */ + public class GlobalStringManager { static String account = ""; static String emial = ""; diff --git a/src/imgzip/LoginSignIn/Login.java b/src/imgzip/LoginSignIn/Login.java index 929a1e963cee73ed6f9a834712e05fb7cf57dbca..ed31a02f32bf1eb7df8a3a9584c1866c3d782ac3 100644 --- a/src/imgzip/LoginSignIn/Login.java +++ b/src/imgzip/LoginSignIn/Login.java @@ -16,6 +16,8 @@ import java.io.*; /** @Author: 肖尧 @Date: 2019.12.4 + + 登录页面的页面类,用于用户登录页面。 */ public class Login extends Application { @@ -91,6 +93,12 @@ public class Login extends Application { } +/** + @Author: 肖尧 + @Date: 2019.12.12 + + 登录页面的启动类,写成构造方法形式被调用,方便该文件夹其他页面调用。 + */ class Loginbeginner{ public Loginbeginner(){ diff --git a/src/imgzip/LoginSignIn/LoginBeginner.java b/src/imgzip/LoginSignIn/LoginBeginner.java index bf4dd6c25c1fac4a08bdd8211c46ba0352da9e6d..0bf981d80d6413a05e68dc048e3edb605181d125 100644 --- a/src/imgzip/LoginSignIn/LoginBeginner.java +++ b/src/imgzip/LoginSignIn/LoginBeginner.java @@ -12,6 +12,13 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; +/** + @Author: 肖尧 + @Date: 2019.12.12 + + 登录页面的启动类,写成构造方法形式被调用,方便其他文件夹中其他页面调用。 + */ + public class LoginBeginner { public LoginBeginner(){ try { diff --git a/src/imgzip/LoginSignIn/LoginController.java b/src/imgzip/LoginSignIn/LoginController.java index 5bfba7524ae659693e2557b4de6f6fb438ce8e50..12c18bd7002ac9653de17b18337eb26752488eda 100644 --- a/src/imgzip/LoginSignIn/LoginController.java +++ b/src/imgzip/LoginSignIn/LoginController.java @@ -144,6 +144,7 @@ public class LoginController { /** 设置记住账号密码按钮的方法。 + 调用方法后,将会往文本文件中写入用户名及密码。 */ public void remember(){