JavaFX学生管理系统

本文介绍了使用JavaFX构建一个学生管理系统的全过程,包括登录、注册页面的搭建,首页的布局设计,如顶部、底部和中部的表格控件,以及数据绑定、模糊查询、退出、删除、增加和修改功能的实现,涉及事件处理和数据库交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

系统介绍

登录页面搭建

代码所示:

登录按钮的事件设置

注册页面的搭建

 代码所示:

代码所示:

首页搭建

 布局分析

 顶部

底部

中部

 表格控件

列值处理器

数据绑定

模糊查询功能

退出功能

 删除功能

增加功能

增加学生 页面

代码所示:

修改功能的制作

修改学生 页面

首页按钮事件


 

系统介绍

我首先要两个实体类一个是老师类,一个学生类

老师类:Teacher

public class Teacher {//老师类
private Integer id;
private String name;
private String password;
private String gender;
}

学生类:Student

public class Student {//学生类
private Integer id;
private String name;
private String password;
private String gender;
private String address;
private String hobby;
}

在该系统中,主要完成老师管理学生的功能,在这节课中,主要完成以下操作:

登录页面搭建

 如图所示我们需要做出这样的效果

代码所示:

@Override
	public void start(Stage stage) throws Exception {
		// TODO Auto-generated method stub
		// 新建布局
		GridPane gp = new GridPane();
		// 设置居中方式
		gp.setAlignment(Pos.CENTER);
		// 调整空隙
		gp.setHgap(10);
		gp.setVgap(10);
		// 新建文本标签
		Label l1 = new Label("老师名称");
		// 新建输入框
		TextField name = new TextField();
		// 新建文本标签:用户密码
		Label l2 = new Label("用户密码");
		// 新建密码框
		PasswordField pwd = new PasswordField();
		// 按钮的创建
		Button b1 = new Button("登录");
		// 注册按钮的创建
		Button b2 = new Button("前往注册");
		gp.add(l1, 0, 0);
		gp.add(name, 1, 0);
		gp.add(l2, 0, 1);
		gp.add(pwd, 1, 1);
		gp.add(b1, 0, 2);
		gp.add(b2, 1, 2);
		Scene sc = new Scene(gp, 300, 200);
		stage.setTitle("老师登录界面");
		stage.setScene(sc);
		stage.show();

搭建好界面之后我们进行

登录按钮的事件设置

使用stage.setOnAction完成事件设置

b1.setOnAction(a -> {
			String urename = name.getText();
			String password = pwd.getText();
			Teacher list = new TeacherDao().list(urename, password);
			if (list != null) {
				Optional<ButtonType> open = new Alert(AlertType.INFORMATION, "登录成功", ButtonType.OK).showAndWait();
				if (ButtonType.OK == open.get()) {
					try {
						new Stu().start(new Stage());
						stage.close();
						
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			} else {
				Optional<ButtonType> alert = new Alert(AlertType.ERROR, "登录失败,请点确定重新登录", ButtonType.OK, ButtonType.NO,
						ButtonType.CLOSE).showAndWait();
				if (alert.get() == ButtonType.OK) {

				}
				if (alert.get() == ButtonType.NO) {

				}
				if (alert.get() == ButtonType.CLOSE) {
					stage.close();
				}
			}
		});

以上就是登录的点击事件的操作,接下来就是注册的主页搭建了:

注册页面的搭建

注册应为美观问题我们选择网格布局搭建

 代码所示:

//新建布局
	GridPane gp=new GridPane();
	//文本标签
	Label l1=new Label("老师名称");
	Label l2=new Label("老师密码");
	Label l3=new Label("老师性别");
	//输入框
	TextField f1=new TextField("请输入老师名字");
	//密码框
	PasswordField f2=new PasswordField();
	//性别单选框
	ToggleGroup group =new ToggleGroup();
	RadioButton men=new RadioButton("男");
	RadioButton miss=new RadioButton("女");
	HBox h1= new HBox();
	//注册按钮和取消按钮创建
	Button b1=new Button("注册");
	Button b2=new Button("取消");
	@Override
	public void start(Stage stage) throws Exception {
		// TODO Auto-generated method stub		
		//设置居中格式
		gp.setAlignment(Pos.CENTER);
		//调整间隙
		gp.setHgap(20);
		gp.setVgap(20);
		men.setToggleGroup(group);
		miss.setToggleGroup(group);
		men.setSelected(true);
		h1.getChildren().addAll(men,miss);
		//用户名
		gp.add(l1, 0, 0);
		gp.add(f1, 1, 0);
		//密码
		gp.add(l2, 0, 1);
		gp.add(f2, 1, 1);
		//用户性别
		gp.add(l3, 0, 2);
		gp.add(h1, 1, 2);
		//按钮
		gp.add(b1, 0, 3);
		gp.add(b2, 1, 3);
//生成场景并完成布局绑定,同时设置场景大小
		Scene sc=new Scene(gp,300,200);
		stage.setTitle("注册");
		stage.setScene(sc);
		stage.show();
	}

接下来我们编写登录页面的注册点击事件

b2.setOnAction(a -> {
			try {
				new Register().start(new Stage());
				
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		});

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值