studentmanager.java
来自「用Java实现学生学籍管理系统」· Java 代码 · 共 374 行
JAVA
374 行
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class StudentManager extends JFrame{
private JMenuBar jMenuBar1;
private JPanel jPanel1;
private JScrollPane jScrollPane1;
private JMenu mFile,mOpt,mHelp;
private JMenuItem mOpen,mSave,mExit;
private JMenuItem mNew,mModi,mClear,mFind,mDelete,mDeleteAll;
private JMenuItem mAbout;
private JList nameList;
JTextField txtID,txtName,txtSex,txtFath,txtData,txtBirth,txtClass,txtFrom;
JButton btnDelete,btnFind,btnNew,btnModi,btnClear;
private Student p;
private Students people=new Students();
private File chosenFile;
private int choice;
private JFileChooser fileChooser=new JFileChooser();
public StudentManager(){
super("学籍管理系统");
initComponents();
nameList.setListData(people.toArray());
setSize(500,530);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void initComponents(){
//添加菜单条
jMenuBar1=new JMenuBar ();
setJMenuBar(jMenuBar1);
mFile=new JMenu ("文件");
mOpen=new JMenuItem ("打开");
mSave=new JMenuItem ("保存");
mExit=new JMenuItem ("退出");
mOpt=new JMenu ("编辑");
mNew=new JMenuItem ("录入");
mClear=new JMenuItem ("清空");
mModi=new JMenuItem("修改");
mFind=new JMenuItem ("查询");
mDelete=new JMenuItem ("删除");
mDeleteAll=new JMenuItem ("全部删除");
mHelp=new JMenu ("帮助");
mAbout=new JMenuItem ("关于");
jMenuBar1.add(mFile);
jMenuBar1.add(mOpt);
jMenuBar1.add(mHelp);
mFile.add(mOpen);
mFile.add(mSave);
mFile.add(mExit);
mOpt.add(mNew);
mOpt.add(mClear);
mOpt.add(mModi);
mOpt.add(mFind);
mOpt.add(mDelete);
mOpt.add(mDeleteAll);
mHelp.add(mAbout);
mOpen.addActionListener(new MemuL());
mSave.addActionListener(new MemuL());
mExit.addActionListener(new MemuL());
mClear.addActionListener(new MemuL());
mModi.addActionListener(new MemuL());
mNew.addActionListener(new MemuL());
mFind.addActionListener(new MemuL());
mDelete.addActionListener(new MemuL());
mDeleteAll.addActionListener(new MemuL());
mAbout.addActionListener(new MemuL());
//添加一个面板
jPanel1=new JPanel ();
jPanel1.setLayout(new FlowLayout(FlowLayout.CENTER,5,20));
getContentPane().add(jPanel1,BorderLayout.CENTER);
jScrollPane1=new JScrollPane ();
nameList=new JList ();
jScrollPane1.setPreferredSize(new Dimension(200,0));
jScrollPane1.setViewportView(nameList);
nameList.setAutoscrolls(false);
nameList.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent evt){nameListMouseClicked(evt);}
});
getContentPane().add(jScrollPane1,BorderLayout.WEST);
btnDelete=new JButton ("删除");
btnFind=new JButton ("查询");
btnNew=new JButton ("录入");
btnModi=new JButton ("修改");
btnClear=new JButton("清空");
JLabel lblid=new JLabel ("学号:");
JLabel lblname=new JLabel ("姓名:");
JLabel lblsex=new JLabel ("性别:");
JLabel lbldata=new JLabel ("入学年份:");
JLabel lblclass=new JLabel ("专业:");
JLabel lblbirth=new JLabel ("出生日期:");
JLabel lblfath=new JLabel ("民族:");
JLabel lblfrom=new JLabel ("籍贯:");
txtID=new JTextField (20);
txtName=new JTextField (20);
txtSex=new JTextField (20);
txtData=new JTextField (18);
txtClass=new JTextField (20);
txtBirth=new JTextField (18);
txtFath=new JTextField (20);
txtFrom=new JTextField (20);
jPanel1.add(lblid);
jPanel1.add(txtID);
jPanel1.add(lblname);
jPanel1.add(txtName);
jPanel1.add(lblsex);
jPanel1.add(txtSex);
jPanel1.add(lbldata);
jPanel1.add(txtData);
jPanel1.add(lblclass);
jPanel1.add(txtClass);
jPanel1.add(lblbirth);
jPanel1.add(txtBirth);
jPanel1.add(lblfath);
jPanel1.add(txtFath);
jPanel1.add(lblfrom);
jPanel1.add(txtFrom);
jPanel1.add(btnClear);
jPanel1.add(btnNew);
jPanel1.add(btnFind);
jPanel1.add(btnModi);
jPanel1.add(btnDelete);
btnClear.addActionListener(new MemuL());
btnNew.addActionListener(new MemuL());
btnModi.addActionListener(new MemuL());
btnFind.addActionListener(new MemuL());
btnDelete.addActionListener(new MemuL());
}
public class MemuL implements ActionListener{
public void actionPerformed(ActionEvent e){
String m=e.getActionCommand();
if(m.equals("打开")){open();}
if(m.equals("保存")){save();}
if(m.equals("退出")){System.exit(1);}
if(m.equals("清空")){clear();}
if(m.equals("录入")){add();}
if(m.equals("查询")){Inquest();}
if(m.equals("删除")){delete();}
if(m.equals("全部删除")){deleteall();}
if(m.equals("修改")){saveEdited();}
if(m.equals("关于")){about();}
}
}
private void about(){
JOptionPane.showConfirmDialog(this,"学籍管理系统\n制作人:程燕云04120010","关于", JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE);
}
private void nameListMouseClicked(MouseEvent evt){
p=(Student)(nameList.getSelectedValue());
txtID.setText(p.ID);
txtName.setText(p.name);
txtSex.setText(p.sex);
txtData.setText(p.data);
txtClass.setText(p.class1);
txtBirth.setText(p.birthday);
txtFath.setText(p.fath);
txtFrom.setText(p.from);
}
private void clear(){
txtID.setText(null);
txtName.setText(null);
txtSex.setText(null);
txtFath.setText(null);
txtData.setText(null);
txtBirth.setText(null);
txtClass.setText(null);
txtFrom.setText(null);
}
private void delete(){
String nam=JOptionPane.showInputDialog("请输入要删除的学号或名字");
p=people.findID(nam);
if(p == null){
p=people.findname(nam);
if(p == null){
JOptionPane.showConfirmDialog(this,"查无此人!","删除结果",JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE);
return;
}
}
if(p!=null){
//people.delete( nameList.getSelectedValue());
people.delete( p);
JOptionPane.showMessageDialog(null,"删除成功!");
nameList.setListData(people.toArray());
clear();
}
}
private void deleteall(){
for(int i=0;i<people.size();){
p=(Student)people.get(i);
people.delete(p);
}
nameList.setListData(people.toArray());
clear();
}
private void Inquest(){
String nam=JOptionPane.showInputDialog("请输入要查询的学号或名字");
p=people.findID(nam);
if(p == null){
p=people.findname(nam);
if(p == null){
JOptionPane.showConfirmDialog(this,"查无此人!","查询结果",JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE);
return;
}
}
if(p!=null){
txtID.setText(p.ID);
txtName.setText(p.name);
txtSex.setText(p.sex);
txtData.setText(p.data);
txtClass.setText(p.class1);
txtBirth.setText(p.birthday);
txtFath.setText(p.fath);
txtFrom.setText(p.from);
}
}
private void add(){
String xuehao="",xingming="",warning="";
xuehao=txtID.getText().trim();
xingming=txtName.getText().trim();
if(xuehao.length()>0&&xingming.length()>0){
if(people.findID(xuehao)==null){
people.addnew(new Student (txtID.getText(),txtName.getText(),txtSex.getText(),txtData.getText(),txtClass.getText(),txtBirth.getText(),txtFath.getText(),txtFrom.getText()));
nameList.setListData(people.toArray());
// JOptionPane.showMessageDialog(null,"录入成功!");
clear();
}else{
warning="该生基本信息已存在,请到修改页面修改!";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}
}else {
warning="必须要输入学号及姓名信息!";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
// return;
}
}
private void open(){
choice=fileChooser.showOpenDialog(this);
if(choice==JFileChooser.APPROVE_OPTION){
chosenFile=fileChooser.getSelectedFile();
}
deserializePeople(chosenFile.getAbsolutePath());
}
private void save(){
choice=fileChooser.showSaveDialog(this);
if(choice==JFileChooser.APPROVE_OPTION){
chosenFile=fileChooser.getSelectedFile();
serializePeople(people,chosenFile.getAbsolutePath());
}
}
private void serializePeople(Students people,String filename){
try{
String s="";
Student stu=null;
PrintWriter out=new PrintWriter(filename);
for(int i=0;i<people.size();i++){
stu=(Student)people.get(i);
out.println(stu.ID);
out.println(stu.name);
out.println(stu.sex);
out.println(stu.data);
out.println(stu.class1);
out.println(stu.birthday);
out.println(stu.fath);
out.println(stu.from);
// s=s+stu.ID+"\n"+stu.name+"\n"+stu.sex+"\n"+stu.data+"\n"+stu.class1+"\n"+stu.birthday+"\n"+stu.fath+"\n"+stu.from+"\n";
// out.println(s);
}
out.close();
}catch(Exception e){
System.out.println(e);
}
}
private void deserializePeople(String filename){
deleteall();
try{
// System.out.println(filename);
FileReader in=new FileReader(filename);
BufferedReader br=new BufferedReader(in);
String s1,s2,s3,s4,s5,s6,s7,s8;
s1=br.readLine();//System.out.println("1"+s1);
s2=br.readLine();//System.out.println("2"+s2);
s3=br.readLine();//System.out.println("3"+s3);
s4=br.readLine();//System.out.println("4"+s4);
s5=br.readLine();//System.out.println("5"+s5);
s6=br.readLine();//System.out.println("6"+s6);
s7=br.readLine();//System.out.println("7"+s7);
s8=br.readLine();//System.out.println("8"+s8);
while(s1.length()>0&&s2.length()>0){
people.addnew(new Student (s1,s2,s3,s4,s5,s6,s7,s8));
s1=br.readLine();//System.out.println("1"+s1);
s2=br.readLine();//System.out.println("2"+s2);
s3=br.readLine();//System.out.println("3"+s3);
s4=br.readLine();//System.out.println("4"+s4);
s5=br.readLine();//System.out.println("5"+s5);
s6=br.readLine();//System.out.println("6"+s6);
s7=br.readLine();//System.out.println("7"+s7);
s8=br.readLine();//System.out.println("8"+s8);
}
br.close();
}catch(Exception e){
System.out.println(e);
}
nameList.setListData(people.toArray());
}
private void saveEdited(){
String xuehao="",xingming="";
Student p;
xuehao=txtID.getText().trim();
xingming=txtName.getText().trim();
if(xuehao.length()>0&&xingming.length()>0){
if((p=people.findID(xuehao))!=null){
p.ID=txtID.getText().trim();
p.name=txtName.getText().trim();
p.sex=txtSex.getText().trim();
p.data=txtData.getText().trim();
p.class1=txtClass.getText().trim();
p.birthday=txtBirth.getText().trim();
p.fath=txtFath.getText().trim();
p.from=txtFrom.getText().trim();
nameList.setListData(people.toArray());
JOptionPane.showMessageDialog(null,"修改成功!");
// clear();
}else{
String warning="输入学号不存在,重新输入要修改的学号!";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
// clear();
}
}else{
String warning="必须要输入学号及姓名信息!";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}
}
public static void main(String args[]){
JFrame frame=new StudentManager();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?