windows端打字游戏——密码找回
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows端打字游戏——密码找回相关的知识,希望对你有一定的参考价值。
FoundFace 主要实现密码找回功能及界面。
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
public class FoundFace extends Application{
public void start(Stage primaryStage) {
SqlLink sql=new SqlLink();
Image over=new Image("over.jpg");
ImageView headImage=new ImageView(over);
Button btSubmit=new Button("提 交");
btSubmit.setPadding(new Insets(5,30,5,30));
btSubmit.setCursor(Cursor.HAND);
Button btExit=new Button("取 消");
btExit.setPadding(new Insets(5,30,5,30));
btExit.setCursor(Cursor.HAND);
Button btCheck=new Button("显 示 密 保 问 题");
btCheck.setPadding(new Insets(5,27,5,27));
btCheck.setCursor(Cursor.HAND);
Label lbUsername=new Label("帐号:");
Label lbUserCheck=new Label();
Label lbQuestion1=new Label("密保问题:");
Label lbQuestion2=new Label();
Label lbAnswer=new Label("答案:");
Label lbPassword1=new Label("新的密码:");
Label lbPassword2=new Label("确认密码:");
TextField tfUsername=new TextField();
tfUsername.setPrefColumnCount(12);
TextField tfAnswer=new TextField();
tfAnswer.setPrefColumnCount(12);
PasswordField pfPassword1=new PasswordField();
pfPassword1.setPrefColumnCount(12);
PasswordField pfPassword2=new PasswordField();
pfPassword2.setPrefColumnCount(12);
GridPane pane1=new GridPane();
pane1.setAlignment(Pos.CENTER);
pane1.setPadding(new Insets(15,0,0,0));
pane1.setHgap(10);
pane1.setVgap(10);
pane1.add(lbUsername,0,0);
pane1.add(tfUsername,1,0);
pane1.add(lbQuestion1,0,1);
pane1.add(btCheck,1,1);
pane1.add(lbAnswer,0,2);
pane1.add(tfAnswer,1,2);
pane1.add(lbPassword1,0,3);
pane1.add(pfPassword1,1,3);
pane1.add(lbPassword2,0,4);
pane1.add(pfPassword2,1,4);
GridPane pane2=new GridPane();
pane2.setAlignment(Pos.CENTER);
pane2.setPadding(new Insets(-15,0,10,0));
pane2.setHgap(20);
pane2.setVgap(10);
pane2.add(btSubmit,0,3);
pane2.add(btExit,1,3);
VBox vBox=new VBox();
vBox.setAlignment(Pos.CENTER);
vBox.setPadding(new Insets(0,0,0,0));
vBox.getChildren().addAll(headImage,pane1,pane2);
btCheck.setOnMouseClicked(new EventHandler<MouseEvent>(){
public void handle(MouseEvent arg0) {
if(sql.checkUser(tfUsername.getText())){
lbQuestion2.setText(sql.getQuestion(tfUsername.getText()));
lbQuestion2.setPadding(new Insets(5,5,5,5));
lbUserCheck.setText(tfUsername.getText());
lbQuestion2.setTextFill(Color.BLACK);
lbUserCheck.setPadding(new Insets(5,25,5,5));
HBox hBox=new HBox();
Button button=new Button("重新输入");
button.setCursor(Cursor.HAND);
button.setOnMouseClicked(new EventHandler<MouseEvent>(){
public void handle(MouseEvent arg0) {
pane1.getChildren().remove(hBox);
pane1.add(tfUsername, 1, 0);
pane1.add(btCheck, 1, 1);
}
});
button.setPadding(new Insets(5,10,5,10));
hBox.getChildren().addAll(lbUserCheck,button);
pane1.getChildren().remove(btCheck);
pane1.getChildren().remove(tfUsername);
pane1.add(hBox, 1, 0);
pane1.add(lbQuestion2, 1, 1);
}else{
lbQuestion2.setText("未找到此帐号!");
lbQuestion2.setTextFill(Color.RED);
lbQuestion2.setPadding(new Insets(5,5,5,5));
pane1.getChildren().remove(btCheck);
HBox hBox=new HBox();
Button button=new Button("重新输入");
button.setCursor(Cursor.HAND);
button.setOnMouseClicked(new EventHandler<MouseEvent>(){
public void handle(MouseEvent arg0) {
pane1.getChildren().remove(hBox);
pane1.add(btCheck, 1, 1);
}
});
button.setPadding(new Insets(5,10,5,10));
hBox.getChildren().addAll(lbQuestion2,button);
pane1.add(hBox, 1, 1);
}
}
});
btSubmit.setOnMouseClicked(new EventHandler<MouseEvent>(){
public void handle(MouseEvent e){
Label lbMessage=new Label();
GridPane pane =new GridPane();
Stage stage=new Stage();
if(sql.changeUser(tfUsername.getText(), pfPassword1.getText())){
lbMessage.setText(" 修改密码成功!");
Button button=new Button("确定");
button.setPadding(new Insets(5,30,5,30));
button.setCursor(Cursor.HAND);
button.setOnMouseClicked(new EventHandler<MouseEvent>(){
public void handle(MouseEvent e){
new LoginFace().start(new Stage());
stage.close();
primaryStage.close();
}
});
pane.add(button,0,1);
pane.setVgap(20);
}else{
lbMessage.setText("密保答案错误!请重新输入!");
}
pane.add(lbMessage,0,0);
pane.setAlignment(Pos.CENTER);
stage.setTitle("修改提示");
stage.setScene(new Scene(pane));
stage.setHeight(120);
stage.setWidth(250);
stage.getIcons().add(new Image("char_bg.png"));
stage.show();
}
});
btExit.setOnMouseClicked(new EventHandler<MouseEvent>(){
public void handle(MouseEvent e){
new LoginFace().start(new Stage());
primaryStage.close();
}
});
Scene scene=new Scene(vBox,400,335);
primaryStage.setTitle("找回狙击坦克的士兵!");
primaryStage.setWidth(400);
primaryStage.setHeight(335);
primaryStage.setResizable(false);
primaryStage.getIcons().add(new Image("char_bg.png"));
primaryStage.setScene(scene);
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>(){
public void handle(WindowEvent e){
new LoginFace().start(new Stage());
primaryStage.close();
}
});
primaryStage.show();
}
}
以上是关于windows端打字游戏——密码找回的主要内容,如果未能解决你的问题,请参考以下文章
通过游戏学python 3.6 第一季 第七章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账