赞
踩
java程序设计基础——学生管理系统
JDK版本:1.8_152
https://gitee.com/kkkkkba/javaFX/tree/master/
用户在输入学号或姓名后,点击查找,弹出对应学生信息的页面,同时设有删除,修改按钮,方便进一步对学生信息进行操作,当学生信息不存在或不匹配时,会弹出提示框。
用户在输入学号或姓名后,点击添加(也可不填写学号直接点击),弹出添加窗口,会自动将输入信息补入,只需将剩下信息不全即可,当学号重复和信息不全时,弹出提示界面。
用户在表单中选择用户后,点击删除即可,若数据太多,可以先以学号和姓名查找再进行删除
用户在表单中选择用户后,点击修改即可,若数据太多,可以先以学号和姓名查找再进行修改
用户点击后将“Input.txt”中的数据导入到表单中。
/*
文本信息要求:
1.每位学生对象应占一行,
2.每位学生信息按 学号 姓名 性别 生日 住址 联系电话 的顺序并以“,”分割,顺序有误会导致导入位置出错,信息不全会无法导入。
//学生信息样例
2020122104900,202000,女,2020-01-01,内蒙古农业大学新区,13488883241
*/
用户点击后,可在“Output.txt”文件中查看导出后的数据
//导出导入数据对应文件在根目录:src/main/java/kangbo 文件夹下
//主页面使用BorderPane布局方式,添加组件用到四个方法:
//顶部输入框及按钮
Top();
//中间表单部分
Center();
//底部按钮
Bottom();
//左右部分(设置表单与页面边框间距)
Side();
//添加:
//获取文本框内容,清除Message_gridPane数据并调用Home_Childinterface中AddMessage();方法
Home_Childinterface.AddMessage(idText,nameText);
//修改:
//当用户选择表单中的某学生后,会将学生对象存入temp中,调用Home_Childinterface中ReavmpMessage(temp);方法进行修改,修改后更新列表
Home_Childinterface.ReavmpMessage(temp);
Updatelist();
//删除:
//当用户选择表单中的某学生后,会将学生对象存入temp中,调用remove()方法进行删除删除后弹出提示页面并关闭窗口
Homepage.message.remove(temp);
Homepage.DeleteSure();
Updatelist();
Deletestage.close();
//定义TableView通过setCenter方法将表格加入boderPane中
borderPane.setCenter(tableView);
//定义表格表头加入到TableView中
//定义ObservableList ,通过setItems()方法将数据添加进TableView中
//按钮
//导入:调用Input()方法
//判断信息(字符串)是否符合要求,若符合则添加
message.add(student_message);
//导出:调用Output()方法
//将数据逐条toString()后调用FileIO.fileWrite写入Output.txt
FileIO.fileWrite(ss);
//写入
public static void fileWrite(String s)
//读取
public static ArrayList<String> fileRead()
package kangbo.studentmanagementsystem; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; public class FileIO { private static FileWriter fileWriter;//按写入数据 private static FileReader fileReader;//按字符读取数据 private static BufferedReader cf; //从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。 private static BufferedWriter cw; //文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入 private static File file1 = new File("src/Input.txt");//输入文件 private static File file2 = new File("src/Output.txt");//输出文件 public static void fileWrite(String s) { try { //True表示新写入的内容会追加在旧内容之后 fileWriter = new FileWriter(file2, true); cw = new BufferedWriter(fileWriter); cw.write(s); } catch (IOException e) { e.printStackTrace();//将此throwable和其追溯打印到指定的打印流。 } finally { try { cw.close(); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } public static ArrayList<String> fileRead() { try { fileReader = new FileReader(file1); cf = new BufferedReader(fileReader); ArrayList<String> ss = new ArrayList<String>(); String s1 = ""; while((s1 = cf.readLine()) != null) ss.add(s1); return ss; } catch (FileNotFoundException e) {//打开文件失败。 e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try{ cf.close(); fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } }
由于此类页面功能相似,所以设置了一个Message_gridPane类为此类页面公用
包含方法:
//设置Message_gridPane中的数据
public void setMessage(String s);
//清除Message_gridPane中的数据
public void ClearMessage();
//设置Message_gridPane中的数据能否只读(传入false为只读)
public void setReadAndwrite(boolean flag);
//获取Message_gridPane中的数据
String getMassage();
//获取自定义的GridPane
GridPane getgridPane();
//界面
//调用Home_Childinterface类中AddMessage方法
static void AddMessage(String idText,String nameText)
//实现: //传入idText和nameText为主页面中填写的学号和姓名等内容并用setText对文本框进行初始化: Message_gridPane.ID.setText(idText); Message_gridPane.name.setText(nameText); //创建BorderPane布局,将Message_gridPane中gridPane填入中间部分,并添加按钮确定和取消 //设置按钮点击事件 //取消则关闭页面, Homepage.Addstage.close(); //确认则调用Message_gridPane中getMassage()方法得到填写数据 String s = Message_gridPane.getMassage(); //判断信息是否输入完整(falg的使用) //不完整 //调用Cinerror()页面进行提示 Cinerror(); //完整: //判断学号是否重复 Homepage.Contains(student_message) //若重复调用Adderror();方法提示 Adderror(); //不重复则添加学生对象,刷新表单,弹出窗口,关闭添加页面 Homepage.message.add(student_message); Homepage.Updatelist();//刷新 Cinsucceed(); Homepage.Addstage.close();
//界面
//调用Home_Childinterface类中ReviseMessage方法
static void ReviseMessage(Student_message student_message)
//实现:
//用Student_Message中toString和Message_gridPane中setMessage将传入学生数据添加到Message_gridPane的文本框中
Message_gridPane.setMessage(student_message.toString());
//调用Message_gridPane中setReadAndwrite()方法,传入false方法,设置文本框只读
Message_gridPane.setReadAndwrite(false);
//创建BorderPane布局,将Message_gridPane中gridPane填入中间部分,并添加按钮返回,删除和修改
//点击按钮界面:
//返回:close();方法
Hintstage.close();
//修改:
//调用 ReavmpMessage方法并关闭Revisestage界面
ReavmpMessage(student_message);
Homepage.Revisestage.close();
//界面
//调用Home_Childinterface类中ReavmpMessage方法
static void ReavmpMessage(Student_message student_message)
//实现: //用Student_Message中toString和Message_gridPane中setMessage将传入学生数据添加到Message_gridPane的文本框中 Message_gridPane.setMessage(student_message.toString()); //调用Message_gridPane中setReadAndwrite()方法,传入true方法,设置文本框可读写 Message_gridPane.setReadAndwrite(true); //创建BorderPane布局,将Message_gridPane中gridPane填入中间部分,并添加确定取消按钮 //点击按钮界面: //取消:close();方法 Homepage.Reavmpstage.close(); //确定: //调用Message_gridPane中RadioButtonmonitor()和Message_gridPane.getMassage();方法获取当前表中数据 Message_gridPane.RadioButtonmonitor() Message_gridPane.getMassage(); //查询表中数据是否完整,不完整将弹出提示框 Changeerror(); //完整: //调用setMessage将学生修改为读取的数据(s) student_message.setMessage(s); Changuscceed(); Homepage.Updatelist(); Homepage.Reavmpstage.close();
3、弹窗页面
//将布局写入fxml文件中调用
FXMLLoader fxmlLoader = new FXMLLoader(Homepage.class.getResource("nocin.fxml"));
//数据类型:final SimpleIntegerProperty(方便加入表格)
private final SimpleIntegerProperty num;
private final SimpleStringProperty ID ;
private final SimpleStringProperty name;
private final SimpleStringProperty gender;
private final SimpleStringProperty birthday;
private final SimpleStringProperty address;
private final SimpleStringProperty phone;
方法:
setting、getting方法获取、填写数据
/**重写equals方法为学号判重*/
boolean equals(Student_message student_message)
//获取数,返回字符串型数据
public String toString();
//将字符串型数据转化为Student对象
public void setMessage(String s)
//按学号排序
public int compareTo(Student_message o);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。