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).作业提 ...
随机推荐
- [算法模版]AC自动机
[算法模版]AC自动机 基础内容 板子不再赘述,OI-WIKI有详细讲解. \(query\)函数则是遍历文本串的所有位置,在文本串的每个位置都沿着\(fail\)跳到根,将沿途所有元素答案++.意义 ...
- Oracle_创建自增
create sequence SEQ_ChamberMapping_ID minvalue maxvalue start with increment by nocache order; CREAT ...
- 关于央行数字货币DCEP的几个特点的思考(转)
近期,央行即将推出数字货币,无论在金融领域还是在资本市场,央行数字货币这一话题都被炒的很火热.央行研发的数字货币叫做DCEP(DC,DigitalCurrency,是数字货币:EP,Electroni ...
- Jenkins工具学习(一)
Jenkins的下载及安装 Jenkins下载地址:https://jenkins.io/download/ 下载后的直接解压安装 根据自己的喜好选择一种方式安装: 如果选择推荐安装,会自动下载一些插 ...
- jQuery学习路线。
通过jQuery思维导图,来进行计划的温习/掌握 jQuery技能. 通过思维导图的思路学习,是很好的学习方法之一,思路清晰.跟上环节,易于贯通,重要的是少走弯路. 这里一共有6张图,第1张是大纲路线 ...
- Sitecore 9 为什么数据驱动的组织选择它
Sitecore 9使用个性化和机器学习来帮助客户提高数字营销对数字投资的回报 Sitecore 9比以往任何时候都更加智能.主要功能包括: 数据集中化 向后兼容性 简单的迁移 该平台简化了营销人员和 ...
- Sitecore 8.2 安全性第2部分:安全性编辑器和Access Viewer
在Sitecore中使用安全性时,您可以使用两个主要应用程序:安全编辑器和Access Viewer.从表面上看,这些工具看起来很相似,但它们扮演着截然不同的角色.让我们回顾一下每个应用程序以及它们的 ...
- Spring Security 解析(四) ——短信登录开发
Spring Security 解析(四) -- 短信登录开发 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security ...
- Linux文件目录指令
1.pwd指令 pwd 显示当前所在的目录 2.ls指令 ls [选项] [目录或文件] 查看文件信息 ls -a 查看所有文件和目录,包括隐藏的 ls -l 以列表的方式显示 3.cd指令 cd 路 ...
- 启动Sonar报错,ERROR: [1] bootstrap checks failed [1]: system call filters failed to install
错误提示信息: ERROR: [1] bootstrap checks failed[1]: system call filters failed to install; check the logs ...