一聚教程网:一个值得你收藏的教程网站

热门教程

JavaFx实现登录成功跳转到程序主页面代码示例

时间:2022-06-29 01:44:15 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下JavaFx实现登录成功跳转到程序主页面代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

1、需求

登录页面在输入账号密码之后,验证账号密码时候正确,正确就跳转到应用程序的首页。

效果如下图:

2、实现

1)、LoginApplication为启动类,启动之后进入到登录页面

public class LoginApplication extends Application {
    @Override
    public void start(Stage stage) throws IOException {
        AnchorPane Login = FXMLLoader.load(getClass().getClassLoader().getResource("FXML/Login/Login.fxml"));
        Scene login = new Scene(Login);
        stage.setTitle("登录");//设置标题
        stage.setScene(login);
        stage.show();
 
    }
 
    public static void main(String[] args) {
        launch(args);
    }
}

2)、LoginController 类进行判断密码的正确性,当密码正确的时候关闭登录窗口,打开主页面窗口

public class LoginController {
    @FXML
    private TextField NumberTextField;
    @FXML
    private TextField PasswordTextField;
    @FXML
    private Label MessageLabel;
    @FXML
    private Button LoginButton;

    public void loginButtonClick(ActionEvent event) throws IOException {
        String number = NumberTextField.getText();
        String password = PasswordTextField.getText();
        if (number != null && !number.equals("") && password != null && !password.equals("")) {
            boolean login = LoginJudge.Login(number, password);
            if (login == true){
                MessageLabel.setText("登录成功");
                Stage primaryStage=(Stage)LoginButton.getScene().getWindow();//将submit(登录按钮)与MainApplication类中的primaryStage(新窗口)绑定 并执行close()
                primaryStage.close();//打开新的窗口 所以要关闭当前的窗口
                MainApplication mainApplication = new MainApplication();//新窗口类
                mainApplication.MainApp();//打开新窗口
            }else {
                MessageLabel.setText("账号或密码错误");
            }
        }else {
            MessageLabel.setText("请输入账号或密码");
        }
    }
}

3)、MainApplication为主页面的类,LoginController调用这个类来启动主页面

public class MainApplication {
    public void MainApp() throws IOException {
        AnchorPane root = FXMLLoader.load(getClass().getClassLoader().getResource("FXML/Main.fxml"));
        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource("/CSS/MainCss.css").toExternalForm());
        Stage stage = new Stage();
        stage.setTitle("技术支持工作台");//设置标题
        stage.setScene(scene);
        stage.show();
    }
}

热门栏目