JavaFX - 制作登录窗口及界面跳转

这篇博客介绍了一个使用JavaFX创建的登录页面,其中登录账号和密码的验证不依赖于数据库,而是通过设置测试数据进行。当输入与预设的测试数据匹配时,登录成功并显示登录信息;否则,登录失败并有提示。登录按钮和清除按钮各自绑定了对应的事件处理,实现了登录验证和界面反馈的功能。
摘要由CSDN通过智能技术生成

 登录账号和密码使用的不是数据库,是使用

setUserData("a");//给一个测试数据

注入的测试数据,效果就是登陆成功后进入界面显示登录账号和密码,失败后登录窗口闪烁进行提示。

 

package sample;


import com.sun.org.apache.bcel.internal.generic.NEW;
import javafx.animation.FadeTransition;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;


public class Main extends Application {


    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {


        Button b3 = new Button("b3");
        Button b4 = new Button("b4");

        Label l_name = new Label("名字:");
        l_name.setFont(new Font(20));//字体大小
        l_name.setTooltip(new Tooltip("请输入名字"));
        Label l_pswd = new Label("密码:");
        l_pswd.setTooltip(new Tooltip("请输入密码"));
        l_pswd.setFont(new Font(20));

        TextField t_name = new TextField();
        t_name.setUserData("a");//给一个测试数据
        PasswordField p_pswd = new PasswordField();
        p_pswd.setUserData("aa");//给一个测试数据
        Button login = new Button("登录");
        Button clear = new Button("清除");

        GridPane gr = new GridPane();

        gr.setStyle("-fx-background-color: #efead0");
        gr.add(l_name, 0, 0);
        gr.add(t_name, 1, 0);
        gr.add(l_pswd, 0, 1);
        gr.add(p_pswd, 1, 1);
        gr.add(clear, 0, 2);
        gr.add(login, 1, 2);

        gr.setAlignment(Pos.CENTER);
        gr.setHgap(10);//设置水平间距
        gr.setVgap(17);//设置垂直间距
        GridPane.setMargin(login, new Insets(0, 0, 0, 120));


        //清除事件
        clear.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                t_name.setText("");
                p_pswd.setText("");//变空或者p.clear
            }
        });

        //登录事件
        login.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {

                String name = t_name.getText();

                String pswd = p_pswd.getText();
                if (t_name.getUserData().equals(name) && p_pswd.getUserData().equals(pswd)) {//和up写的不太一样
                    System.out.println("登陆成功!");
                    mywindow MWD = new mywindow(name, pswd);
                    primaryStage.close();
                } else {
                    System.out.println("登录失败!");
                    l_name.setTextFill(Color.CORAL);
                    FadeTransition tst = new FadeTransition();
                    tst.setDuration(Duration.seconds(0.2));
                    tst.setNode(gr);
                    tst.setFromValue(0);
                    tst.setToValue(1);
                    tst.play();

                }

            }

        });


        Scene scene = new Scene(gr);


        primaryStage.setScene(scene);
        primaryStage.setTitle("Java FX - 登录页面 ");
        primaryStage.setWidth(500);
        primaryStage.setHeight(300);
        primaryStage.setResizable(false); //登录窗口的大小不允许改变
        primaryStage.show();


    }


}

class mywindow {

    private final Stage stage = new Stage();

    public mywindow(String name, String password) {
        Text text = new Text("账号:" + name + "     密码" + password);
        BorderPane bor = new BorderPane();
        bor.setStyle("-fx-background-color: cadetblue");
        bor.setCenter(text);
        Scene scene = new Scene(bor);


        stage.setScene(scene);
        stage.setTitle("登陆成功 ");
        stage.setWidth(500);
        stage.setHeight(500);
        stage.setResizable(false); //登录窗口的大小不允许改变
        stage.show();
    }
}

JavaFX-Support是一个开源项目,致力于为JavaFX提供友好的支持和工具。JavaFX是一个用于构建丰富用户界面的Java库,而JavaFX-Support项目旨在为开发人员提供便利和增强功能,以提高他们在开发JavaFX应用程序时的效率和体验。 JavaFX-Support项目具有以下特点和功能: 1.样式编辑器:JavaFX-Support项目提供了一个样式编辑器,使开发人员能够轻松编辑和定制JavaFX应用程序的视觉样式。通过这个编辑器,开发人员可以直观地调整应用程序的颜色、字体和其他视觉元素,而无需手动编写代码。 2.视觉组件库:JavaFX-Support项目还包含了一个丰富的视觉组件库,开发人员可以直接在应用程序中使用这些组件,而无需自己编写。这些组件可以帮助开发人员快速构建出现频率较高的界面元素,例如按钮、文本框、列表等。 3.布局助手:JavaFX-Support项目还提供了一个布局助手,用于在JavaFX应用程序中进行布局。开发人员可以方便地使用拖放方式调整和排列组件,从而更加灵活地设计界面。 4.调试工具:JavaFX-Support项目还包含了一些调试工具,用于帮助开发人员在开发过程中定位和修复问题。这些工具可以帮助开发人员追踪布局问题、排查异常和提高性能。 总的来说,JavaFX-Support项目是一个强大而实用的工具集,它使得开发人员可以更加便捷地开发和定制JavaFX应用程序。无论是初学者还是有经验的开发人员都可以从中受益,并提高他们在JavaFX开发中的效率和质量。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值