JavaFX 学生登陆表格
利用JavaFX实现一个学生登陆的界面,其中包括各种JavaFX组件的使用,利用焦点变动自动检测内容的合法性和监控文本输入以及页面的跳转,具体代码如下:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package 期末作业;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.control.TextArea;
import javafx.scene.control.PasswordField;
import javafx.scene.control.Button;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.control.ComboBox;
import javafx.scene.control.CheckBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.layout.Pane;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import java.awt.event.FocusListener;
import java.awt.event.FocusEvent;
import java.util.regex.Pattern;
import javafx.scene.input.KeyCode;
/**
*
* @author Midori
*/
public class 登録 extends Application{
String s1,s2,s3,s4,s5;
@Override
public void start(Stage primaryStage){
primaryStage.setResizable(false);
Pane pane=new Pane();
GridPane grid=new GridPane();
grid.setHgap(25);
grid.setVgap(25);
pane.setMinSize(600, 250);
Text t1=new Text("用户登陆");
t1.setFont(Font.font("Tahoma", 40));
grid.add(t1,1,0);
Text t2=new Text("姓名:");
t2.setFont(Font.font("Tahoma", 30));
grid.add(t2, 0, 1);
Text t3=new Text("密码:");
t3.setFont(Font.font("Tahoma", 30));
grid.add(t3, 0, 2);
TextField t4=new TextField();
PasswordField t5=new PasswordField();
grid.add(t4, 1, 1);
grid.add(t5, 1, 2);
grid.setAlignment(Pos.CENTER);
grid.setLayoutX(100);
pane.getChildren().add(grid);
Button bt=new Button("确定");
bt.setLayoutX(350);
bt.setLayoutY(200);
pane.getChildren().add(bt);
bt.setOnKeyPressed(e->{
if(e.getCode()==KeyCode.ENTER){
s1="姓名: gdufs";
s2="学号:";
s3="学院:";
s4="性别:";
s5="爱好:";
TextArea T=new TextArea();
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
T.setLayoutX(100);
T.setLayoutY(600);
T.setMaxSize(500, 300);
T.setEditable(false);
if(t4.getText().equals("gdufs")&&t5.getText().equals("welcome")){
primaryStage.close();
Stage stage=new Stage();
Pane p1=new Pane();
GridPane p2=new GridPane();
p2.setHgap(25);
p2.setVgap(25);
Text T1=new Text("用户信息主界面");
T1.setFont(Font.font("Tahoma", 40));
p2.add(T1, 1, 0);
Text T2=new Text("用户名");
T2.setFont(Font.font("Tahoma", 30));
p2.add(T2, 0, 1);
Text T3=new Text("学号");
T3.setFont(Font.font("Tahoma", 30));
p2.add(T3, 0, 2);
Text T4=new Text("学院");
T4.setFont(Font.font("Tahoma", 30));
p2.add(T4, 0, 3);
p2.setLayoutX(100);
p2.setLayoutY(100);
p1.getChildren().addAll(p2);
Text T5=new Text("性别");
T5.setFont(Font.font("Tahoma", 30));
p2.add(T5, 0, 4);
Text T8=new Text("爱好");
T8.setFont(Font.font("Tahoma", 30));
p2.add(T8, 0, 5);
TextField T6=new TextField("gdufs");
T6.setEditable(false);
T6.setMaxSize(300, 1);
p2.add(T6, 1, 1);
TextField T7=new TextField();
Text text=new Text();
text.setFont(Font.font("Tahoma", 15));
text.setFill(Color.WHITE);
text.setText("非法输入!");
p2.add(text, 2, 2);
T7.focusedProperty().addListener((s,ov,nv)->{
if(!nv){
String S=T7.getText();
if(!isNum(S)){
text.setFill(Color.RED);
}else{
text.setFill(Color.WHITE);
s2="学号: "+S;
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
}
}
});
p2.add(T7, 1, 2);
ComboBox cb=new ComboBox();
cb.getItems().addAll("信息学院","英教学院","东语学院");
cb.setOnAction(e1->{
if(!cb.getSelectionModel().isEmpty()){
s3="学院: "+cb.getValue();
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
}
});
p2.add(cb, 1, 3);
final ToggleGroup group=new ToggleGroup();
RadioButton rb1=new RadioButton("男");
rb1.setToggleGroup(group);
RadioButton rb2=new RadioButton("女");
rb2.setToggleGroup(group);
rb1.setOnAction(e1->{
s4="性别: 男";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
rb2.setOnAction(e1->{
s4="性别: 女";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
GridPane P=new GridPane();
P.setVgap(20);
P.setHgap(75);
P.add(rb1, 0, 0);
P.add(rb2, 1, 0);
p2.add(P, 1, 4);
GridPane P1=new GridPane();
GridPane P2=new GridPane();
P1.setHgap(75);
P2.setHgap(75);
CheckBox cb1=new CheckBox("唱歌");
CheckBox cb2=new CheckBox("RAP");
CheckBox cb3=new CheckBox("篮球");
CheckBox cb4=new CheckBox("唱跳RAP篮球");
cb1.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
cb2.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
cb3.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
cb4.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
P1.add(cb1, 0, 0);
P1.add(cb2, 1, 0);
P2.add(cb3, 0, 0);
P2.add(cb4, 1, 0);
p2.add(P1, 1, 5);
p2.add(P2, 1, 6);
p1.getChildren().add(T);
Scene sc=new Scene(p1);
stage.setMinWidth(700);
stage.setMinHeight(1000);
stage.setResizable(false);
stage.setScene(sc);
stage.setTitle("個人情報");
stage.show();
}else{
Text t=new Text("用户名或密码错误!");
t.setFill(Color.RED);
t.setLayoutX(400);
t.setLayoutY(200);
pane.getChildren().add(t);
}
}
});
bt.setOnAction(e->{
s1="姓名: gdufs";
s2="学号:";
s3="学院:";
s4="性别:";
s5="爱好:";
TextArea T=new TextArea();
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
T.setLayoutX(100);
T.setLayoutY(600);
T.setMaxSize(500, 300);
T.setEditable(false);
if(t4.getText().equals("gdufs")&&t5.getText().equals("welcome")){
primaryStage.close();
Stage stage=new Stage();
Pane p1=new Pane();
GridPane p2=new GridPane();
p2.setHgap(25);
p2.setVgap(25);
Text T1=new Text("用户信息主界面");
T1.setFont(Font.font("Tahoma", 40));
p2.add(T1, 1, 0);
Text T2=new Text("用户名");
T2.setFont(Font.font("Tahoma", 30));
p2.add(T2, 0, 1);
Text T3=new Text("学号");
T3.setFont(Font.font("Tahoma", 30));
p2.add(T3, 0, 2);
Text T4=new Text("学院");
T4.setFont(Font.font("Tahoma", 30));
p2.add(T4, 0, 3);
p2.setLayoutX(100);
p2.setLayoutY(100);
p1.getChildren().addAll(p2);
Text T5=new Text("性别");
T5.setFont(Font.font("Tahoma", 30));
p2.add(T5, 0, 4);
Text T8=new Text("爱好");
T8.setFont(Font.font("Tahoma", 30));
p2.add(T8, 0, 5);
TextField T6=new TextField("gdufs");
T6.setEditable(false);
T6.setMaxSize(300, 1);
p2.add(T6, 1, 1);
TextField T7=new TextField();
Text text=new Text();
text.setFont(Font.font("Tahoma", 15));
text.setFill(Color.WHITE);
text.setText("非法输入!");
p2.add(text, 2, 2);
T7.focusedProperty().addListener((s,ov,nv)->{
if(!nv){
String S=T7.getText();
if(!isNum(S)){
text.setFill(Color.RED);
}else{
text.setFill(Color.WHITE);
s2="学号: "+S;
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
}
}
});
p2.add(T7, 1, 2);
ComboBox cb=new ComboBox();
cb.getItems().addAll("信息学院","英教学院","东语学院");
cb.setOnAction(e1->{
if(!cb.getSelectionModel().isEmpty()){
s3="学院: "+cb.getValue();
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
}
});
p2.add(cb, 1, 3);
final ToggleGroup group=new ToggleGroup();
RadioButton rb1=new RadioButton("男");
rb1.setToggleGroup(group);
RadioButton rb2=new RadioButton("女");
rb2.setToggleGroup(group);
rb1.setOnAction(e1->{
s4="性别: 男";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
rb2.setOnAction(e1->{
s4="性别: 女";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
GridPane P=new GridPane();
P.setVgap(20);
P.setHgap(75);
P.add(rb1, 0, 0);
P.add(rb2, 1, 0);
p2.add(P, 1, 4);
GridPane P1=new GridPane();
GridPane P2=new GridPane();
P1.setHgap(75);
P2.setHgap(75);
CheckBox cb1=new CheckBox("唱歌");
CheckBox cb2=new CheckBox("RAP");
CheckBox cb3=new CheckBox("篮球");
CheckBox cb4=new CheckBox("唱跳RAP篮球");
cb1.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
cb2.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
cb3.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
cb4.setOnAction(e1->{
s5="爱好: ";
if(cb1.isSelected())
s5+=cb1.getText()+";";
if(cb2.isSelected())
s5+=cb2.getText()+";";
if(cb3.isSelected())
s5+=cb3.getText()+";";
if(cb4.isSelected())
s5+=cb4.getText()+";";
T.setText(s1+"\n"+s2+"\n"+s3+"\n"+s4+"\n"+s5);
});
P1.add(cb1, 0, 0);
P1.add(cb2, 1, 0);
P2.add(cb3, 0, 0);
P2.add(cb4, 1, 0);
p2.add(P1, 1, 5);
p2.add(P2, 1, 6);
p1.getChildren().add(T);
Scene sc=new Scene(p1);
stage.setMinWidth(700);
stage.setMinHeight(1000);
stage.setResizable(false);
stage.setScene(sc);
stage.setTitle("個人情報");
stage.show();
}else{
Text t=new Text("用户名或密码错误!");
t.setFill(Color.RED);
t.setLayoutX(400);
t.setLayoutY(200);
pane.getChildren().add(t);
}
});
Scene scene=new Scene(pane);
primaryStage.setScene(scene);
primaryStage.setTitle("登録");
primaryStage.show();
}
public static boolean isNum(String str){
if(str.length()!=11)
return false;
else{
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
return pattern.matcher(str).matches();
}
}
public static void main(String[] args){
Application.launch(args);
}
}
下面是图形界面:
JavaFX 学生登陆表格的更多相关文章
- javafx之登陆界面的跳转
界面布局用到的是fxml而非纯java代码,工具是javafx sence builder 账号:account 密码:password 登陆成功: 可以点击退出登陆返回到登陆页面 工程目录: pac ...
- Java课程设计---浏览学生(表格的使用)
1.创建显示表格的窗体 package com.student.view; import java.awt.EventQueue; import javax.swing.JFrame; import ...
- HttpClient+Jsoup模拟登陆贺州学院教务系统,获取学生个人信息
前言 注:可能学校的教务系统已经做了升级,当前的程序不知道还能不能成功获取信息,加上已经毕业,我的账户已经被注销,试不了,在这里做下思路跟过程的记录. 在我的毕业设计中”基于SSM框架贺州学院校园二手 ...
- Java课程设计--学生成绩管理系统
一.团队名称: 团队成员 林艺薇 201721123032 网络1712 黄毓颖 201721123033 网络1712 唐川 201721123034 网络1712 梁才玉 201721123038 ...
- 基于数据库MySQL的简易学生信息管理系统
通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...
- python实现学生选课系统 面向对象的应用:
一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课 ...
- 初学者:JSP登陆界面
学生登陆查询系统 1 程序的主要功能及特点 实现一个登录界面的基本功能,具体要求: 登录界面login.jsp含有表单,用户能够输入用户名和密码,并提交表单给verify.jsp. Verify.js ...
- Java课设(学生信息管理系统)
1.团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模板或任务说明 设计登陆界面和学生信息界面的设计,学生信息的显示.退出等功 ...
- ThinkPHP5作业管理系统中处理学生未交作业与已交作业信息
在作业管理系统中,学生登陆到个人中心后可以通过左侧的菜单查看自己已经提交的作业和未提交作业.那么在系统中如何实现这些数据的查询的呢?首先我们需要弄清楚学生(Student).班级(class).作业提 ...
随机推荐
- Unix/Linux小计
1. centos查看cpu信息 cat /proc/cpuinfo processor有几个就是有几个cpu,每一列是每个cpu的信息 每个processor中的cores是当前cpu中有几个核心. ...
- 一台Linux服务器(4C8G配置)可以负载百万个连接?
一台Linux服务器可以负载多少个连接? 首先我们来看如何标识一个TCP连接?系统是通过一个四元组来识别,(src_ip,src_port,dst_ip,dst_port)即源IP.源端口.目标IP. ...
- Web Api 实现新建功能接口
ResultModel类 是一个结果类 public class ResultModel { /// <summary> /// 返回结果状态 /// </summary> p ...
- 排行榜 和 zset
ZSET 使用 https://blog.csdn.net/weixin_37490221/article/details/78135036 https://www.cnblogs.com/chenz ...
- SQL Server 中获取所有的用户表、用户视图的信息
直接贴代码了: 用户表: SELECT s.Name,Convert(varchar(max),tbp.value) as Description FROM sysobjects s AND (tbp ...
- 记:使用IScroll.js 开发picker日历组件遇到的问题及经验总结
IScroll中文文档 第一个问题: 边界留白 就是这种,上边界(最小),下边界(最大)有两个列表的位置是不能选择的.解决的办法是: 在HTML中,添加空白节点就行了. 第二个问题:初始化之后的滚动停 ...
- TestNG系列(三)TestNG之XML文件配置
前言 上一篇博客说了TestNG的注解,这篇博客来介绍Test.xml文件. Test.xml文件可以更方便的管理和执行测试用例 一.Test.xml-suite: suite为Test.xml的根节 ...
- Linux学习笔记之Linux文件系统详解
0x00 机械硬盘 机械磁盘由磁头(head).磁道(track).柱面(cylinder).扇区(sector)和盘片(platter)组成.其中,磁头悬浮在盘片上,并且每张盘片上下各有一个磁头:每 ...
- SAP销售订单需求类型的确定优秀级
需求类型的确定优秀级:1.策略组里的需求类型:2.MRP组里的:3.SO行项目类别+MRP类型4.SO行项目类别 部分截图:
- Java判断两个时间相差的天数
1.实现目标 输入:两个日期 输出:两个日期相差的天数 2.代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 ...