学生信息管理系统简易版完整代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.hyf.view; //MainClass包import java.awt.EventQueue;
import javax.swing.JFrame;
public class MainClass {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
StudentView frame = new StudentView();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
package com.hyf.view;//界面
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.JTableHeader;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTable;
import .StudentBiz;
import com.hyf.entity.StudentInfo;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class StudentView extends JFrame {
JPanel contentPane;
private JTextField txtStuNum;
private JTextField txtStuName;
private JTextField txtStuAge;
private JTextField txtStuSex;
private JLabel lblStuNum;
private JLabel lblStuName;
private JLabel lblStuAge;
private JLabel lblStuSex;
private JButton btnAdd;
private JButton btnUpdate;
private JButton btnDelete;
private JButton btnSelect;
private JButton btnClear;
private JButton btnSave;
private JTable table;
private JScrollPane jsp;
StudentBiz sbiz = new StudentBiz();
public StudentView() {
setTitle("\u5B66\u751F\u4FE1\u606F\u7BA1\u7406\u7CFB\u7EDF");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(400, 100, 480, 456);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
lblStuNum = new JLabel("\u8BF7\u8F93\u5165\u5B66\u53F7\uFF1A");
lblStuNum.setBounds(10, 41, 81, 21);
contentPane.add(lblStuNum);
lblStuName = new JLabel("\u8BF7\u8F93\u5165\u59D3\u540D\uFF1A");
lblStuName.setBounds(10, 72, 81, 21);
contentPane.add(lblStuName);
lblStuAge = new JLabel("\u8BF7\u8F93\u5165\u5E74\u9F84\uFF1A");
lblStuAge.setBounds(10, 103, 81, 21);
contentPane.add(lblStuAge);
lblStuSex = new JLabel("\u8BF7\u8F93\u5165\u6027\u522B\uFF1A");
lblStuSex.setBounds(10, 134, 81, 21);
contentPane.add(lblStuSex);
txtStuNum = new JTextField();
txtStuNum.setBounds(101, 41, 108, 21);
contentPane.add(txtStuNum);
txtStuNum.setColumns(10);
txtStuName = new JTextField();
txtStuName.setColumns(10);
txtStuName.setBounds(101, 72, 108, 21);
contentPane.add(txtStuName);
txtStuAge = new JTextField();
txtStuAge.setColumns(10);
txtStuAge.setBounds(101, 103, 54, 21);
contentPane.add(txtStuAge);
txtStuSex = new JTextField();
txtStuSex.setColumns(10);
txtStuSex.setBounds(101, 134, 54, 21);
contentPane.add(txtStuSex);
btnAdd = new JButton("\u6DFB\u52A0");
btnAdd.addActionListener(new BtnAdd_Listener(this));
btnAdd.setBounds(101, 165, 93, 23);
contentPane.add(btnAdd);
btnUpdate = new JButton("\u4FEE\u6539");
btnUpdate.addActionListener(new BtnUpdate_Listener(this));
btnUpdate.setEnabled(false);
btnUpdate.setBounds(309, 40, 93, 23);
contentPane.add(btnUpdate);
btnDelete = new JButton("\u5220\u9664");
btnDelete.addActionListener(new BtnDelete_Listener(this));
btnDelete.setEnabled(false);
btnDelete.setBounds(309, 71, 93, 23);
contentPane.add(btnDelete);
btnSelect = new JButton("\u67E5\u8BE2");
btnSelect.addActionListener(new BtnSelect_Listener(this));
btnSelect.setBounds(309, 102, 93, 23);
contentPane.add(btnSelect);
btnClear = new JButton("\u6E05\u7A7A");
btnClear.addActionListener(new BtnClear_Listener(this));
btnClear.setBounds(309, 133, 93, 23);
contentPane.add(btnClear);
btnSave = new JButton("\u4FDD\u5B58\u6570\u636E");
btnSave.addActionListener(new BtnSave_Listener(this));
btnSave.setBounds(309, 165, 93, 23);
contentPane.add(btnSave);
sbiz.readStu();
tableDisp();
}
private void tableDisp(){ //表格显示if(jsp!=null){
contentPane.remove(jsp);
contentPane.repaint();
}
table = new JTable(sbiz.getAllStudents().size(),4);
jsp = new JScrollPane(table);
jsp.setBounds(10, 217, 446, 164);
contentPane.add(jsp);
contentPane.repaint();//刷新
StudentInfo stu = null;
for(int i = 0; i < sbiz.getAllStudents().size(); i++ ){
stu = sbiz.getAllStudents().get(i);
table.setValueAt(stu.stuNum, i, 0);
table.setValueAt(stu.stuName, i, 1);
table.setValueAt(stu.stuSex, i, 2);
table.setValueAt(stu.stuAge, i, 3);
}
JTableHeader jth= table.getTableHeader();
jth.getColumnModel().getColumn(0).setHeaderValue("学号");
jth.getColumnModel().getColumn(1).setHeaderValue("姓名");
jth.getColumnModel().getColumn(2).setHeaderValue("年龄");
jth.getColumnModel().getColumn(3).setHeaderValue("性别");
table.addMouseListener(new TableMouse_Listener(this));
contentPane.repaint();
}
public void table_Click(){
int row = table.getSelectedRow();//获得当前选择的行号
System.out.println(row);
if(row == -1){
return;
}
btnAdd.setEnabled(false);
btnUpdate.setEnabled(true);
btnDelete.setEnabled(true);
btnSelect.setEnabled(false);
txtStuNum.setEnabled(false);
txtStuNum.setText(table.getValueAt(row, 0).toString());
txtStuName.setText(table.getValueAt(row, 1).toString());
txtStuAge.setText(table.getValueAt(row, 2).toString());
txtStuSex.setText(table.getValueAt(row, 3).toString());
}
private void clearTxt(){
txtStuNum.setText("");
txtStuName.setText("");
txtStuAge.setText("");
txtStuSex.setText("");
}
public void btnAdd_Click() {
StudentInfo stu = new StudentInfo();
try{
stu.stuNum = Integer.parseInt(txtStuNum.getText());
stu.stuName = txtStuName.getText();
stu.stuAge = Integer.parseInt(txtStuAge.getText());
stu.stuSex = txtStuSex.getText();
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(jsp, "输入有误,请确认!");
return;
}
for(StudentInfo si:sbiz.getAllStudents()){
if(si.stuNum==stu.stuNum){
JOptionPane.showMessageDialog(jsp, "学号已存在,请确认!");
return;
}
}
sbiz.addStudent(stu);
tableDisp();
clearTxt();
}
public void btnUpdate_Click() {
StudentInfo stu = new StudentInfo();
try{
stu.stuNum = Integer.parseInt(txtStuNum.getText());
stu.stuName = txtStuName.getText();
stu.stuSex = txtStuSex.getText();
stu.stuAge = Integer.parseInt(txtStuAge.getText());
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(jsp, "输入有误,请确认!");
return;
}
sbiz.updateStudent(stu);
clearTxt();
btnUpdate.setEnabled(false);
btnDelete.setEnabled(false);
btnAdd.setEnabled(true);
txtStuNum.setEnabled(true);
tableDisp();
}
public void btnDelete_Click() {
StudentInfo stu = new StudentInfo();
try{
stu.stuNum = Integer.parseInt(txtStuNum.getText());
stu.stuName = txtStuName.getText();
stu.stuSex = txtStuSex.getText();
stu.stuAge = Integer.parseInt(txtStuAge.getText());
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(jsp, "输入有误,请确认!");
return;
}
sbiz.deleteStudent(stu);
clearTxt();
btnUpdate.setEnabled(false);
btnDelete.setEnabled(false);
btnAdd.setEnabled(true);
txtStuNum.setEnabled(true);
tableDisp();
}
public void btnSelect_Click() {
StudentInfo stu=null;
try{
int num = Integer.parseInt(txtStuNum.getText());
int i = sbiz.findStudent(num);
stu=sbiz.getAllStudents().get(i);
txtStuNum.setText(stu.stuNum+"");
txtStuName.setText(stu.stuName);
txtStuAge.setText(stu.stuAge+"");
txtStuSex.setText(stu.stuSex);
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(jsp, "输入有误,请确认!");
return;
}catch(IndexOutOfBoundsException e){
JOptionPane.showMessageDialog(jsp, "查无此人,请确认!");
return;
}
btnUpdate.setEnabled(true);
btnDelete.setEnabled(true);
txtStuNum.setEnabled(false);
}
public void btnClear_Click() {
clearTxt();
btnUpdate.setEnabled(false);
btnDelete.setEnabled(false);
txtStuNum.setEnabled(true);
btnAdd.setEnabled(true);
btnSelect.setEnabled(true);
}
public void btnSave_Click() {
sbiz.saveStu();
}
}
class TableMouse_Listener extends MouseAdapter{
private StudentView sv;
public TableMouse_Listener(StudentView sv){
this.sv=sv;
}
public void mouseClicked(MouseEvent arg0) {
sv.table_Click();
}
}
class BtnAdd_Listener implements ActionListener{
private StudentView sv;//变量的引用
public BtnAdd_Listener(StudentView sv){
this.sv=sv;
}
public void actionPerformed(ActionEvent arg0) {
sv.btnAdd_Click();
}
}
class BtnUpdate_Listener implements ActionListener{
private StudentView sv;
public BtnUpdate_Listener(StudentView sv){
this.sv=sv;
}
public void actionPerformed(ActionEvent arg0){
sv.btnUpdate_Click();
}
}
class BtnDelete_Listener implements ActionListener{
private StudentView sv;
public BtnDelete_Listener(StudentView sv){
this.sv=sv;
}
public void actionPerformed(ActionEvent arg0) {
sv.btnDelete_Click();
}
}
class BtnSelect_Listener implements ActionListener{ private StudentView sv;
public BtnSelect_Listener(StudentView sv){
this.sv=sv;
}
public void actionPerformed(ActionEvent arg0) {
sv.btnSelect_Click();
}
}
class BtnClear_Listener implements ActionListener{ private StudentView sv;
public BtnClear_Listener(StudentView sv){
this.sv=sv;
}
public void actionPerformed(ActionEvent arg0) {
sv.btnClear_Click();
}
}
class BtnSave_Listener implements ActionListener{ private StudentView sv;
public BtnSave_Listener(StudentView sv){
this.sv=sv;
}
public void actionPerformed(ActionEvent arg0) {
sv.btnSave_Click();
}
}
package com.hyf.entity;
/**
* 实体类包
*/
import java.io.Serializable;
public class StudentInfo implements Serializable{ public int stuNum;
public String stuName;
public int stuAge;
public String stuSex;
public boolean equals(Object obj){
if(this.stuNum == ((StudentInfo)obj).stuNum){
return true;
}
return false;
}
public String toString(){
return stuNum+"\t"+stuName+"\t"+stuAge+"\t"+stuSex;
}
}
package ;
/**
* 业务实现包
*/
import com.hyf.entity.StudentInfo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class StudentBiz{
ArrayList<StudentInfo> stus = new ArrayList<StudentInfo>();
public int findStudent(int num){
StudentInfo stu=new StudentInfo();
stu.stuNum=num;
return stus.indexOf(stu);
}
public void addStudent(StudentInfo stu){
stus.add(stu);
}
public void deleteStudent(StudentInfo stu){
stus.remove(stu);
}
public void updateStudent(StudentInfo stu){
int index = stus.indexOf(stu);
if( index == -1 ){
return;
}
stus.get(index).stuNum = stu.stuNum;
stus.get(index).stuName = stu.stuName;
stus.get(index).stuSex = stu.stuSex;
stus.get(index).stuAge = stu.stuAge;
}
public ArrayList<StudentInfo> getAllStudents(){
return stus;
}
public void saveStu(){
try {
FileWriter fw=new FileWriter("d:\\学生信息.txt");
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<stus.size();i++){
bw.write(stus.get(i).toString());
bw.newLine();
}
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void readStu(){
try {
ArrayList<String> strFile=new ArrayList<String>();
FileReader fr=new FileReader("d:\\学生信息.txt");
BufferedReader br=new BufferedReader(fr);
String str;
while((str=br.readLine())!=null){
strFile.add(str);
}
br.close();
fr.close();
StudentInfo stu=null;
String strs[];
for(String temp : strFile){
stu = new StudentInfo();
strs = temp.split("\t");
stu.stuNum = Integer.parseInt(strs[0]);
stu.stuName= strs[1];
stu.stuAge = Integer.parseInt(strs[2]);
stu.stuSex = strs[3];
stus.add(stu);
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "信息为空");
} catch (IOException e) {
e.printStackTrace();
}
}
}。