首页 > 解决方案 > JavaFX 登录访问被拒绝

问题描述

当我尝试使用 redbull 作为用户名和 pass123 作为密码登录时,它不显示访问权限消息,而是转到 else 语句并显示访问被拒绝消息

    Label usernameLb = new Label("Username:");
    GridPane.setConstraints(usernameLb, 0, 0);

    TextField usernameTf = new TextField();
    usernameTf.setPromptText("Username");
    GridPane.setConstraints(usernameTf , 1, 0);

    Label passLb = new Label("Password:");
    GridPane.setConstraints(passLb, 0, 1);

    TextField passTf = new TextField();
    passTf.setPromptText("Password");
    GridPane.setConstraints(passTf, 1, 1);

    Button loginBtn = new Button("Login");
    loginBtn.setOnAction(e -> {

        String username = usernameTf.getText();
        String password = passTf.getText();

        if (username == "redbull" && password == "pass123"){

            System.out.println(username + "\n" + password);
            JOptionPane.showMessageDialog(null, 
                    "Access Granted", " ", JOptionPane.PLAIN_MESSAGE);

        } else {

            System.out.println(username + "\n" + password);
            JOptionPane.showMessageDialog(null, 
                    "Access Denied", " ", JOptionPane.PLAIN_MESSAGE);
        }
    });

    GridPane.setConstraints(loginBtn, 1, 2);

    gridPane.getChildren().addAll(usernameLb, 
    usernameTf, passLb, passTf, loginBtn);

    Scene scene1 = new Scene(gridPane, 300, 200);
    window.setScene(scene1);
    window.show();

}

标签: javajavafx

解决方案


.equals()在比较两个字符串的值时使用。

(username.equals("redbull") && password.equals("pass123"))


推荐阅读