From 15adbf259539af03922ee1d7933ee2796f366e72 Mon Sep 17 00:00:00 2001 From: 50582 <505822174@qq.com> Date: Fri, 22 Nov 2019 22:49:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E2=91=A0=EF=BC=9A=E5=AF=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=A1=B5=E9=9D=A2=E7=9A=84cancel=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E4=BA=86=E8=AE=BE=E7=BD=AE=20=E2=91=A1?= =?UTF-8?q?=EF=BC=9A=E5=88=B6=E4=BD=9C=E5=87=BA=E2=80=9C=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E6=88=96=E8=B4=A6=E6=88=B7=E9=94=99=E8=AF=AF=E2=80=9D=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E5=8F=8A=E5=85=B6=E6=96=B9=E6=B3=95=EF=BC=88=E5=B0=9A?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90=EF=BC=89=20=E2=91=A2=EF=BC=9A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80=E4=BA=9B=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93BUG=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fxml/Login.fxml | 2 +- src/fxml/WrongPassword.fxml | 112 ++++++++++++++++++++++++ src/imgzip/Login.java | 3 +- src/imgzip/LoginController.java | 52 ++++++++--- src/imgzip/WrongPassword.java | 30 +++++++ src/imgzip/WrongPasswordController.java | 58 ++++++++++++ src/res/icon/sad face.jpg | Bin 0 -> 13580 bytes 7 files changed, 242 insertions(+), 15 deletions(-) create mode 100644 src/fxml/WrongPassword.fxml create mode 100644 src/imgzip/WrongPassword.java create mode 100644 src/imgzip/WrongPasswordController.java create mode 100644 src/res/icon/sad face.jpg diff --git a/src/fxml/Login.fxml b/src/fxml/Login.fxml index 2ef5350..ed0fe88 100644 --- a/src/fxml/Login.fxml +++ b/src/fxml/Login.fxml @@ -76,7 +76,7 @@ - + + + + + + + + + + + + + + + + diff --git a/src/imgzip/Login.java b/src/imgzip/Login.java index cc94ffc..48daf40 100644 --- a/src/imgzip/Login.java +++ b/src/imgzip/Login.java @@ -18,14 +18,13 @@ import java.awt.event.FocusListener; /** @Author: 肖尧 - @Date: 2019.11.20 + @Date: 2019.11.22 */ public class Login extends Application { @Override public void start(Stage primaryStage) throws Exception{ - try { Parent root = FXMLLoader.load(getClass().getResource("/fxml/Login.fxml")); diff --git a/src/imgzip/LoginController.java b/src/imgzip/LoginController.java index e7cde46..ee5e10d 100644 --- a/src/imgzip/LoginController.java +++ b/src/imgzip/LoginController.java @@ -6,6 +6,8 @@ import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.control.CheckBox; +import javafx.stage.Stage; + import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; @@ -15,7 +17,7 @@ import java.sql.Statement; /** @Author:肖尧 - @Date:2019.11.20 + @Date:2019.11.22 */ public class LoginController { @@ -43,7 +45,7 @@ public class LoginController { - /* + /** 检查用户是否输入了用户名和密码, 如果只输入了用户名,或只输入了密码,或两者都没输入,则按钮LOGIN无法被点击, 当用户名与密码同时被输入时,按钮LOGIN才能被点击。 @@ -54,17 +56,19 @@ public class LoginController { String stringPassword = password.getText(); String ifEmpty = ""; - if (stringAccount.equals(ifEmpty) || stringPassword.equals(ifEmpty)){ + if ( (stringAccount.equals(ifEmpty) || stringPassword.equals(ifEmpty)) && login.isDisable() == false){ login.setDisable(true); - }else { + }else if ((!stringAccount.equals(ifEmpty) && !stringPassword.equals(ifEmpty))){ login.setDisable(false); - } - } + /** + 检查是否已经连上数据库 + */ + public void dataBaseConnectionCheck(){ DataBaseController loginInstruction = new DataBaseController(); try { @@ -75,24 +79,37 @@ public class LoginController { } } - + /** + 用户点击此按钮时, + ①:如果账号不存在或账号存在但是密码错误,则进入密码错误页面。 + ②:如果账号存在且密码正确,则进入主页面(尚未完成) + */ public void login(){ DataBaseController loginInstruction = new DataBaseController(); + ResultSet rs = null; try{ String currentInstruction = "SELECT pwd FROM login WHERE userName=" + "'" + account.getText().trim()+ "'"; - System.out.println("here1"); - ResultSet rs = loginInstruction.queryExcecute(currentInstruction); - System.out.println("hereax"); + rs = loginInstruction.queryExcecute(currentInstruction); if (rs.next()) { - System.out.println("find"); + String rightPassword = rs.getString(1); + if (rightPassword.equals(password.getText())){ + //登入主页面,待定 + System.out.println("登录成功"); + + }else{ + new WrongPassword(); + + } + }else { - System.out.println("not find"); + new WrongPassword(); + } }catch (SQLException e){ @@ -104,4 +121,15 @@ public class LoginController { } + + /** + 设置back事件, + 当用户点击该按钮的时候,跳转至登录界面 + */ + public void cancel(){ + + Stage stage = (Stage)cancel.getScene().getWindow(); + stage.close(); + } + } diff --git a/src/imgzip/WrongPassword.java b/src/imgzip/WrongPassword.java new file mode 100644 index 0000000..7a41275 --- /dev/null +++ b/src/imgzip/WrongPassword.java @@ -0,0 +1,30 @@ +package imgzip; + +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + + +/** + @Author: 肖尧 + @Date: 2019.11.22 + */ + +public class WrongPassword { + public WrongPassword(){ + + try { + + Parent root = FXMLLoader.load(getClass().getResource("/fxml/WrongPassword.fxml")); + Stage primaryStage = new Stage(); + primaryStage.setTitle("Password is wrong!"); + primaryStage.setScene(new Scene(root, 638.0, 450.0)); + primaryStage.show(); + + }catch (Exception e){ + e.printStackTrace(); + } + + } +} diff --git a/src/imgzip/WrongPasswordController.java b/src/imgzip/WrongPasswordController.java new file mode 100644 index 0000000..00e085e --- /dev/null +++ b/src/imgzip/WrongPasswordController.java @@ -0,0 +1,58 @@ +package imgzip; +import javafx.application.Platform; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.stage.Stage; + +import java.sql.ResultSet; +import java.sql.SQLException; + + +/** + Author:肖尧 + Date:2019.11.22 + */ +public class WrongPasswordController { + + @FXML + private Button createAccount; + + @FXML + private Button findPassword; + + @FXML + private Button back; + + + /** + 设置createAccount事件, + 当用户点击该按钮的时候,跳转至用户注册页面 + */ + + public void createAccount(){ + + } + + + /** + 设置findPassword事件, + 当用户点击该按钮的时候,跳转至用户找回密码页面 + */ + public void findPassword(){ + + } + + + /** + 设置back事件, + 当用户点击该按钮的时候,跳转至登录界面 + */ + public void back(){ + + Stage stage = (Stage)back.getScene().getWindow(); + stage.close(); + + } + + +} diff --git a/src/res/icon/sad face.jpg b/src/res/icon/sad face.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9d85dbf6b73b912c30baf7da2c8b00dba7adfc8 GIT binary patch literal 13580 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 literal 0 HcmV?d00001 -- Gitee From 9d4fc2f408d6cbfcdd2976f1fb894c2a912a75c3 Mon Sep 17 00:00:00 2001 From: 50582 <505822174@qq.com> Date: Sat, 23 Nov 2019 13:32:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E2=91=A0=E4=BC=98=E5=8C=96=E4=BA=86?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E3=80=81=E5=AF=86=E7=A0=81=E6=9C=AA=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E6=97=B6=E4=B8=8D=E8=83=BD=E7=82=B9=E5=87=BBLogin?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=9A=84=E4=B8=80=E4=BA=9B=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E3=80=82=20=E2=91=A1=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E2=80=9C=E8=AE=B0=E4=BD=8F=E8=B4=A6=E5=8F=B7=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E2=80=9D=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=9C=A8=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E4=BA=86=E2=80=9CRemember=20my=20password=E2=80=9D?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=A1=86=20=E6=97=B6=EF=BC=8C=E4=B8=8B?= =?UTF-8?q?=E6=AC=A1=E7=99=BB=E5=BD=95=E6=97=B6=E8=B4=A6=E5=8F=B7=E5=92=8C?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E6=A1=86=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=A1=AB?= =?UTF-8?q?=E5=85=A5=E4=B8=8A=E6=AC=A1=E7=99=BB=E5=BD=95=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E7=9A=84=E5=AF=86=E7=A0=81=E3=80=82=EF=BC=88=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=96=87=E4=BB=B6=E6=9C=AA=E5=81=9A=E5=8A=A0?= =?UTF-8?q?=E5=AF=86=EF=BC=89=20=E2=91=A2=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?=E4=B8=BB=E9=A1=B5=E9=9D=A2=E7=9A=84=E4=B8=80=E4=BA=9BBUG?= =?UTF-8?q?=E3=80=82=20=E2=91=A3=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=BD=AE=E6=94=BEtxt=E6=96=87=E6=9C=AC=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E6=96=87=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/imgzip/Login.java | 53 +++++++++++++++++++++- src/imgzip/LoginController.java | 57 ++++++++++++++++++++---- src/txtFile/RememberAccount&Password.txt | 1 + 3 files changed, 101 insertions(+), 10 deletions(-) create mode 100644 src/txtFile/RememberAccount&Password.txt diff --git a/src/imgzip/Login.java b/src/imgzip/Login.java index 48daf40..f2ff168 100644 --- a/src/imgzip/Login.java +++ b/src/imgzip/Login.java @@ -8,6 +8,7 @@ import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; import javafx.scene.control.TextField; import javafx.scene.control.PasswordField; import javafx.scene.layout.BorderPane; @@ -15,10 +16,14 @@ import javafx.stage.Stage; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.FileWriter; /** @Author: 肖尧 - @Date: 2019.11.22 + @Date: 2019.11.23 */ public class Login extends Application { @@ -29,14 +34,58 @@ public class Login extends Application { Parent root = FXMLLoader.load(getClass().getResource("/fxml/Login.fxml")); + TextField account = (TextField)root.lookup("#Account"); + PasswordField password = (PasswordField)root.lookup("#password"); + CheckBox remember = (CheckBox)root.lookup("#remember"); + Button logIn = (Button)root.lookup("#Login"); + + + /** + 在页面开启之前检查上一次是否记住了密码, + 如果上一次登录点击了记住密码,则在本次打开时会将账号和密码写入 + */ + try { + + FileReader fr = new FileReader("src/txtFile/RememberAccount&Password.txt"); + BufferedReader br = new BufferedReader(fr); + + String line = ""; + line = br.readLine(); + + + String[] judge = line.split("\\|"); + String truejudge = "true"; + int accountIndex = 0; + int passwordIndex = 1; + int judgeIndex = 2; + + if(judge[judgeIndex].equals(truejudge) ){ + account.setText(judge[accountIndex]); + password.appendText(judge[passwordIndex]); + + remember.setSelected(true); + logIn.setDisable(false); + + } + + br.close(); + fr.close(); + + }catch (Exception e){ + e.printStackTrace(); + + } + primaryStage.setTitle("XXX login"); primaryStage.setScene(new Scene(root, 638, 400)); primaryStage.show(); }catch (Exception e){ e.printStackTrace(); + + } + } - } public static void main(String[] args) { launch(args); diff --git a/src/imgzip/LoginController.java b/src/imgzip/LoginController.java index ee5e10d..88e38b1 100644 --- a/src/imgzip/LoginController.java +++ b/src/imgzip/LoginController.java @@ -8,16 +8,23 @@ import javafx.scene.control.TextField; import javafx.scene.control.CheckBox; import javafx.stage.Stage; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.FileWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; + import java.sql.SQLException; import java.sql.Statement; /** @Author:肖尧 - @Date:2019.11.22 + @Date:2019.11.23 */ public class LoginController { @@ -56,7 +63,7 @@ public class LoginController { String stringPassword = password.getText(); String ifEmpty = ""; - if ( (stringAccount.equals(ifEmpty) || stringPassword.equals(ifEmpty)) && login.isDisable() == false){ + if ( (stringAccount.equals(ifEmpty) || stringPassword.equals(ifEmpty))){ login.setDisable(true); }else if ((!stringAccount.equals(ifEmpty) && !stringPassword.equals(ifEmpty))){ @@ -81,8 +88,9 @@ public class LoginController { /** 用户点击此按钮时, - ①:如果账号不存在或账号存在但是密码错误,则进入密码错误页面。 - ②:如果账号存在且密码正确,则进入主页面(尚未完成) + ①:如果账号不存在或账号存在但是密码错误,则进入密码错误页面。 + ②:如果账号存在且密码正确,则进入主页面(尚未完成)。 + ③:如果勾选了记住账号和密码,则在下一次打开页面时会记住上一次的密码。 */ public void login(){ @@ -99,12 +107,13 @@ public class LoginController { if (rs.next()) { String rightPassword = rs.getString(1); if (rightPassword.equals(password.getText())){ + + remember(); //登入主页面,待定 - System.out.println("登录成功"); + System.out.println("登录1"); }else{ new WrongPassword(); - } }else { @@ -119,12 +128,14 @@ public class LoginController { loginInstruction.close(); } + + + } /** - 设置back事件, - 当用户点击该按钮的时候,跳转至登录界面 + 设置cancel按钮,可以直接点击这里完成窗口的关闭。 */ public void cancel(){ @@ -132,4 +143,34 @@ public class LoginController { stage.close(); } + /** + 设置记住账号密码按钮的方法。 + */ + + public void remember(){ + boolean ifclick = remember.isSelected(); + String judgeIfclick = ""; + + if(ifclick){ + judgeIfclick = "true"; + }else { + judgeIfclick = "false"; + } + + + try { + FileWriter fw = new FileWriter("src/txtFile/RememberAccount&Password.txt"); + BufferedWriter fis = new BufferedWriter(fw); + + fis.write(account.getText() +"|"+ password.getText() + "|" + judgeIfclick ); + fis.newLine(); + + fis.close(); + fw.close(); + + }catch (Exception e){ + e.printStackTrace(); + } + } } + diff --git a/src/txtFile/RememberAccount&Password.txt b/src/txtFile/RememberAccount&Password.txt new file mode 100644 index 0000000..8d940e7 --- /dev/null +++ b/src/txtFile/RememberAccount&Password.txt @@ -0,0 +1 @@ +admin|12345|true -- Gitee From 462018d9bf325018bb97a23b4e8b9288f27e0236 Mon Sep 17 00:00:00 2001 From: 50582 <505822174@qq.com> Date: Sun, 24 Nov 2019 15:14:08 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E2=91=A0=E5=A2=9E=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=95=8C=E9=9D=A2=E7=9A=84java=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E3=80=81=E6=8E=A7=E5=88=B6=E5=99=A8=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?fxml=E6=96=87=E4=BB=B6=EF=BC=8C=E4=BD=86=E6=98=AF=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E9=83=A8=E5=88=86=E3=80=82=20=E2=91=A1=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=A1=B5=E9=9D=A2=E4=B8=8E=E5=AF=86=E7=A0=81=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=A1=B5=E9=9D=A2=E7=9A=84=E2=80=9C=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E6=8C=89=E9=92=AE=E2=80=9D=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E4=B8=8E=E6=B3=A8=E5=86=8C=E7=95=8C=E9=9D=A2=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=20=E2=91=A2=E4=BC=98=E5=8C=96=E4=BA=86=E2=80=9C=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E9=94=99=E8=AF=AF=E2=80=9D=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaProgrem.iml | 14 ++- src/fxml/CreateAccount.fxml | 111 ++++++++++++++++++++++++ src/fxml/Login.fxml | 2 +- src/fxml/WrongPassword.fxml | 22 ++--- src/imgzip/CreateAccount.java | 27 ++++++ src/imgzip/CreateAccountController.java | 7 ++ src/imgzip/Login.java | 4 +- src/imgzip/LoginController.java | 13 ++- src/imgzip/WrongPassword.java | 4 +- src/imgzip/WrongPasswordController.java | 8 +- src/res/icon/Happyface.jpg | Bin 0 -> 16605 bytes 11 files changed, 185 insertions(+), 27 deletions(-) create mode 100644 src/fxml/CreateAccount.fxml create mode 100644 src/imgzip/CreateAccount.java create mode 100644 src/imgzip/CreateAccountController.java create mode 100644 src/res/icon/Happyface.jpg diff --git a/JavaProgrem.iml b/JavaProgrem.iml index bcd2974..fc860bb 100644 --- a/JavaProgrem.iml +++ b/JavaProgrem.iml @@ -5,8 +5,16 @@ - + + + + + + + + + + - - + \ No newline at end of file diff --git a/src/fxml/CreateAccount.fxml b/src/fxml/CreateAccount.fxml new file mode 100644 index 0000000..e611333 --- /dev/null +++ b/src/fxml/CreateAccount.fxml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fxml/Login.fxml b/src/fxml/Login.fxml index ed0fe88..3eb3b86 100644 --- a/src/fxml/Login.fxml +++ b/src/fxml/Login.fxml @@ -31,7 +31,7 @@ - + - @@ -100,7 +136,7 @@ - + diff --git a/src/fxml/CreateSuccessfully.fxml b/src/fxml/CreateSuccessfully.fxml new file mode 100644 index 0000000..ee7696f --- /dev/null +++ b/src/fxml/CreateSuccessfully.fxml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - - diff --git a/src/imgzip/CreateAccount.java b/src/imgzip/CreateAccount.java index cbb8493..fc8a0df 100644 --- a/src/imgzip/CreateAccount.java +++ b/src/imgzip/CreateAccount.java @@ -3,16 +3,29 @@ package imgzip; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.control.Button; import javafx.stage.Stage; + +import javafx.scene.control.Label; + /** @Author: 肖尧 - @Date: 2019.11.24 + @Date: 2019.12.4 */ public class CreateAccount { public CreateAccount(){ try { - Parent root = FXMLLoader.load(getClass().getResource("/fxml/CreateAccount.fxml")); + + Label already = (Label)root.lookup("#Al"); + already.setVisible(false); + + Label already2 = (Label)root.lookup("#Al2"); + already2.setVisible(false); + + Button createAccount = (Button)root.lookup("#createAccount"); + createAccount.setDisable(true); + Stage primaryStage = new Stage(); primaryStage.setTitle("Create an Account"); primaryStage.setScene(new Scene(root, 600.0000999999975, 633)); @@ -25,3 +38,24 @@ public class CreateAccount { } } +class CreateSuccessfully{ + + public CreateSuccessfully(){ + + try { + Parent root = FXMLLoader.load(getClass().getResource("/fxml/CreateSuccessfully.fxml")); + + Stage primaryStage = new Stage(); + primaryStage.setTitle("Create an Account Successfully!"); + primaryStage.setScene(new Scene(root, 638, 406)); + primaryStage.show(); + + }catch (Exception e){ + e.printStackTrace(); + } + + + } + +} + diff --git a/src/imgzip/CreateAccountController.java b/src/imgzip/CreateAccountController.java index ad6eae4..6a2c88b 100644 --- a/src/imgzip/CreateAccountController.java +++ b/src/imgzip/CreateAccountController.java @@ -1,7 +1,286 @@ package imgzip; +import javafx.application.Platform; +import javafx.fxml.FXML; +import javafx.scene.control.*; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.control.Alert; +import javafx.scene.web.WebEngine; +import javafx.scene.web.WebView; +import javafx.stage.Stage; + +import java.awt.*; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.sql.ResultSet; +import java.sql.SQLException; + /** @Author: 肖尧 - @Date: 2019.11.24 + @Date: 2019.12.4 */ public class CreateAccountController { + + @FXML + private TextField userName; + + @FXML + private TextField passWord; + + @FXML + private TextField email; + + @FXML + private TextField telephone; + + @FXML + private CheckBox agree; + + @FXML + private Button createAccount; + + @FXML + private Hyperlink privacy; + + @FXML + private Label already; + + @FXML + private Label already2; + + @FXML + private Hyperlink signIn; + + + /** + * SignIn点击后,返回登录页面并关闭注册页面 + */ + public void backToLogin() { + Stage stage = (Stage) signIn.getScene().getWindow(); + new Loginbeginner(); + stage.close(); + + } + + /** + * 检查账号是否存在,如果存在则无法点击注册按钮,且会提醒用户。 + */ + boolean judgeAccountExists = false; + public void checkAccountExistence() { + DataBaseController createAccountInstruction = new DataBaseController(); + ResultSet rs = null; + ResultSet rs2 = null; + + try { + /** + 第一步,检查数据库中是否有该账号存在 + */ + String currentInstruction = "SELECT pwd FROM login WHERE userName=" + "'" + userName.getText().trim() + "'"; + rs = createAccountInstruction.queryExcecute(currentInstruction); + + /** + * 第二步: + * ①如果账号为空,则无法点击注册按钮。 + * ②如果账号存在,无法点击。 + * ③如果账号不存在,邮箱存在,无法点击。 + * ④如果账号邮箱都不存在,但是未同意服务条款,无法点击。 + * ⑤如果账号邮箱都不存在,且同意了服务条款,才可被点击。 + */ + + if("".equals(userName.getText())){ + createAccount.setDisable(true); + + }else { + if (rs.next()) { + judgeAccountExists = true; + already.setVisible(true); + + if(!createAccount.isDisable()){ + createAccount.setDisable(true); + + } + }else{ + judgeAccountExists = false; + already.setVisible(false); + + if(!judgeEmialexist && agree.isSelected()){ + createAccount.setDisable(false); + + } + + } + + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + createAccountInstruction.close(); + } + + } + + /** + * 检查邮箱是否存在,如果存在则无法点击注册按钮,且会提醒用户。 + */ + + boolean judgeEmialexist = false; + public void checkEmailExistence() { + + DataBaseController createAccountInstruction = new DataBaseController(); + ResultSet rs = null; + ResultSet rs2 = null; + + try { + String currentInstruction2 = "SELECT pwd FROM login WHERE email=" + "'" + email.getText().trim() + "'"; + rs2 = createAccountInstruction.queryExcecute(currentInstruction2); + + /** + * 第二步: + * ①如果账号为空,则无法点击注册按钮。 + * ②如果账号存在,无法点击。 + * ③如果账号不存在,邮箱存在,无法点击。 + * ④如果账号邮箱都不存在,但是未同意服务条款,无法点击。 + * ⑤如果账号邮箱都不存在,且同意了服务条款,才可被点击。 + */ + + if ("".equals(email.getText())){ + createAccount.setDisable(true); + + }else { + if (rs2.next()) { + judgeEmialexist = true; + already2.setVisible(true); + + if(!createAccount.isDisable()){ + createAccount.setDisable(true); + + } + }else{ + judgeEmialexist = false; + already2.setVisible(false); + + if(!judgeAccountExists && agree.isSelected()){ + createAccount.setDisable(false); + + } + + } + + } + } catch (Exception e) { + e.printStackTrace(); + + } finally { + createAccountInstruction.close(); + + } + + } + + /** + * CreateAccount点击后,将账号插入数据库中 + */ + public void createAccount() { + DataBaseController createAccountInstruction = new DataBaseController(); + ResultSet rs = null; + + try { + /** + 向数据库中插入数据 + */ + String currentInstruction = "INSERT INTO login (userName,pwd,email,tel) values(" + "'"+userName.getText().trim()+ "'" + "," + "'"+ passWord.getText().trim()+ "'" + "," + "'"+ email.getText().trim() + "'"+ "," + "'"+telephone.getText().trim()+ "'"+")" ; + createAccountInstruction.queryUpdate(currentInstruction); + + /** + 检查数据库中是否成功插入数据 + */ + String currentInstruction2 = "SELECT pwd FROM login WHERE userName=" + "'" + userName.getText().trim() + "'"; + rs = createAccountInstruction.queryExcecute(currentInstruction2); + + if(rs.next()){ + Stage stage = (Stage) signIn.getScene().getWindow(); + new CreateSuccessfully(); + stage.close(); + + }else{ + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("SORRY!"); + alert.setHeaderText("Something's wrong!"); + alert.setContentText("The Account is not created"); + alert.showAndWait(); + + } + + } catch (Exception e) { + e.printStackTrace(); + System.out.println("456"); + + } finally { + createAccountInstruction.close(); + + } + + } + + /** + * 检查是否点击了同意privacy协议,如果不同意,则无法点击 createaccount 按钮。 + */ + public void checkIfSelectedPrivacy(){ + if(!judgeAccountExists && !judgeEmialexist && createAccount.isDisable()){ + createAccount.setDisable(false); + + } + + boolean userNmae = "".equals(userName.getText()); + boolean emial = "".equals(email.getText()); + + if(!agree.isSelected() || userNmae || emial ){ + createAccount.setDisable(true); + + } + } + + /** + * 点击Privacy 的 hyperlink后,跳出网页进入隐私条例说明。 + */ + public void openPrivacy(){ + + try{ + try { + Desktop.getDesktop().browse(new URI("https://www.epicgames.com/site/en-US/privacypolicy?lang=en-US&sessionInvalidated=true")); + + }catch (IOException e){ + System.out.println("123"); + + } + }catch (URISyntaxException e){ + System.out.println("456"); + + } + } + + + /** + * 点击Service 的 hyperlink后,跳出网页进入服务说明。 + */ + public void openService(){ + + try{ + try { + Desktop.getDesktop().browse(new URI("https://www.epicgames.com/site/en-US/tos?lang=en-US")); + + }catch (IOException e){ + System.out.println("123"); + + } + }catch (URISyntaxException e){ + System.out.println("456"); + + } + } + } + + diff --git a/src/imgzip/CreateSuccessfullyController.java b/src/imgzip/CreateSuccessfullyController.java new file mode 100644 index 0000000..2e59f53 --- /dev/null +++ b/src/imgzip/CreateSuccessfullyController.java @@ -0,0 +1,39 @@ +package imgzip; + +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.stage.Stage; +/** + @Author: 肖尧 + @Date: 2019.11.24 + */ + +public class CreateSuccessfullyController{ + @FXML + private Button signUp; + + @FXML + private Button signIn; + + + /** + * 点击后sign up 后回到登录页面。 + */ + public void backToLogin() { + Stage stage = (Stage) signUp.getScene().getWindow(); + new Loginbeginner(); + stage.close(); + + } + + + /** + * 点击后sign in again 后继续注册。 + */ + public void backToSignIn() { + Stage stage = (Stage) signIn.getScene().getWindow(); + new CreateAccount(); + stage.close(); + + } +} diff --git a/src/imgzip/DataBaseController.java b/src/imgzip/DataBaseController.java index 7e68673..2779ab3 100644 --- a/src/imgzip/DataBaseController.java +++ b/src/imgzip/DataBaseController.java @@ -48,6 +48,7 @@ public class DataBaseController { ex.printStackTrace(); } + } @@ -68,7 +69,28 @@ public class DataBaseController { ex.printStackTrace(); } + return rs; } + + public void queryUpdate(String sql){ + try { + + Class.forName(driver); + + ct = DriverManager.getConnection(url,user,password); + + ps = ct.prepareStatement(sql); + + ps.executeUpdate(); + + }catch (Exception ex){ + ex.printStackTrace(); + + } + + } + + } diff --git a/src/imgzip/Login.java b/src/imgzip/Login.java index 1610704..9f92445 100644 --- a/src/imgzip/Login.java +++ b/src/imgzip/Login.java @@ -23,7 +23,7 @@ import java.io.FileWriter; /** @Author: 肖尧 - @Date: 2019.11.24 + @Date: 2019.12.4 */ public class Login extends Application { @@ -92,3 +92,65 @@ public class Login extends Application { } } + + +class Loginbeginner{ + public Loginbeginner(){ + try { + Stage primaryStage = new Stage(); + Parent root = FXMLLoader.load(getClass().getResource("/fxml/Login.fxml")); + + TextField account = (TextField)root.lookup("#Account"); + PasswordField password = (PasswordField)root.lookup("#password"); + CheckBox remember = (CheckBox)root.lookup("#remember"); + Button logIn = (Button)root.lookup("#Login"); + + + /** + 在页面开启之前检查上一次登录时是否记住了密码, + 如果上一次登录点击了记住密码,则在本次打开时会将账号和密码写入 + */ + try { + + FileReader fr = new FileReader("src/txtFile/RememberAccount&Password.txt"); + BufferedReader br = new BufferedReader(fr); + + String line = ""; + line = br.readLine(); + + + String[] judge = line.split("\\|"); + String truejudge = "true"; + int accountIndex = 0; + int passwordIndex = 1; + int judgeIndex = 2; + + if(judge[judgeIndex].equals(truejudge) ){ + account.setText(judge[accountIndex]); + password.appendText(judge[passwordIndex]); + + remember.setSelected(true); + logIn.setDisable(false); + + } + + br.close(); + fr.close(); + + }catch (Exception e){ + e.printStackTrace(); + + } + + primaryStage.setTitle("XXX login"); + primaryStage.setScene(new Scene(root, 638, 400)); + primaryStage.show(); + + }catch (Exception e){ + e.printStackTrace(); + + } + + } + +} \ No newline at end of file diff --git a/src/imgzip/LoginController.java b/src/imgzip/LoginController.java index e6d8d30..6c47f3d 100644 --- a/src/imgzip/LoginController.java +++ b/src/imgzip/LoginController.java @@ -97,7 +97,6 @@ public class LoginController { DataBaseController loginInstruction = new DataBaseController(); ResultSet rs = null; - try{ String currentInstruction = "SELECT pwd FROM login WHERE userName=" + "'" + account.getText().trim()+ "'"; @@ -114,10 +113,14 @@ public class LoginController { }else{ new WrongPassword(); + Stage stage = (Stage)createAccount.getScene().getWindow(); + stage.close(); } }else { new WrongPassword(); + Stage stage = (Stage)createAccount.getScene().getWindow(); + stage.close(); } @@ -127,10 +130,6 @@ public class LoginController { }finally { loginInstruction.close(); } - - - - } @@ -143,6 +142,8 @@ public class LoginController { stage.close(); } + + /** 设置记住账号密码按钮的方法。 */ @@ -157,7 +158,6 @@ public class LoginController { judgeIfclick = "false"; } - try { FileWriter fw = new FileWriter("src/txtFile/RememberAccount&Password.txt"); BufferedWriter fis = new BufferedWriter(fw); @@ -179,6 +179,8 @@ public class LoginController { */ public void createAccount(){ new CreateAccount(); + Stage stage = (Stage)createAccount.getScene().getWindow(); + stage.close(); } diff --git a/src/imgzip/WrongPassword.java b/src/imgzip/WrongPassword.java index 52b15e8..39416f3 100644 --- a/src/imgzip/WrongPassword.java +++ b/src/imgzip/WrongPassword.java @@ -19,7 +19,7 @@ public class WrongPassword { Parent root = FXMLLoader.load(getClass().getResource("/fxml/WrongPassword.fxml")); Stage primaryStage = new Stage(); primaryStage.setTitle("Password is wrong!"); - primaryStage.setScene(new Scene(root, 638.0, 385)); + primaryStage.setScene(new Scene(root, 638.0, 400)); primaryStage.show(); }catch (Exception e){ diff --git a/src/imgzip/WrongPasswordController.java b/src/imgzip/WrongPasswordController.java index a72c3e2..b1793a3 100644 --- a/src/imgzip/WrongPasswordController.java +++ b/src/imgzip/WrongPasswordController.java @@ -3,6 +3,7 @@ import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.stage.Stage; +import sun.rmi.runtime.Log; import java.sql.ResultSet; import java.sql.SQLException; @@ -31,7 +32,8 @@ public class WrongPasswordController { public void createAccount(){ new CreateAccount(); - back(); + Stage stage = (Stage)back.getScene().getWindow(); + stage.close(); } @@ -52,6 +54,7 @@ public class WrongPasswordController { Stage stage = (Stage)back.getScene().getWindow(); stage.close(); + new Loginbeginner(); } diff --git a/src/res/icon/sad face.jpg b/src/res/icon/sad face.jpg index b9d85dbf6b73b912c30baf7da2c8b00dba7adfc8..41a788914fa33a772477f82cd6b29a5cbc1d2850 100644 GIT binary patch literal 14688 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 bY5te<^T&BJ)B%q0lw90p^8fM#!WjBr4VFce literal 13580 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 diff --git a/src/txtFile/RememberAccount&Password.txt b/src/txtFile/RememberAccount&Password.txt index 8d940e7..5c847cd 100644 --- a/src/txtFile/RememberAccount&Password.txt +++ b/src/txtFile/RememberAccount&Password.txt @@ -1 +1 @@ -admin|12345|true +13609013530|xiaoyaozizai|true -- Gitee