本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下
一、项目结构
学生信息管理系统分三层进行实现。student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据。Stuview.java用于单一的用来显示数据。
二、源码
1.1、Student 类
import java.io.Serializable;
public class Student implements Serializable {
//序列化id
private static final long serialVersionUID = 9088453456517873574L;
int num;
String name;
String sex;
int age;
float grade;
public Student(int num ,String nameString,String sexString,int g,float f){
this.num =num;
name = nameString;
sex =sexString;
age =g;
grade =f;
}
public int getNum(){
return num;
}
public String getName(){
return name;
}
public String getSex(){
return sex;
}
public int getAge(){
return age;
}
public float getGrades(){
return grade;
}
public String toString(){
return "姓名:"+name+"学号:"+num+"性别:"+sex+"年龄:"+age+"成绩:"+grade;
}
}
1.2、Cotroller类
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
public class Cotroller {
//student数据集合
private ArrayList list;
public Cotroller(ArrayList l){
this.list =l;
}
public ArrayList getList()
{
return list;
}
public void setList(ArrayList list)
{
this.list = list;
}
public void add(Student s)
{
list.add(s);
}
public void remove(int id)
{
for(Iterator iter = list.iterator(); iter.hasNext();)
{
Student s = iter.next();
if(s.getNum() == id)
{
list.remove(s);
}
}
}
public String printAll(int i) {
return list.get(i).toString();
}
public void fileOt() throws FileNotFoundException{
FileOutputStream fo = new FileOutputStream("/home/nazi/2.txt");
try {
ObjectOutputStream so = new ObjectOutputStream(fo);
so.writeObject(list);
so.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
public void fileIn() throws FileNotFoundException{
FileInputStream fi = new FileInputStream("/home/nazi/2.txt");
try {
ObjectInputStream si = new ObjectInputStream(fi);
list = (ArrayList) si.readObject();
si.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
1.3、StuView类
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.Jtextarea;
import javax.swing.JTextField;
public class StuView {
private static Cotroller cotroller;
public static void main(String args[]){
//创建管理者
cotroller = new Cotroller(new ArrayList());
//界面
initframe();
}
protected static void initframe(){
Jframe frame = new Jframe("学生信息管理系统");
frame.setSize(600,600);
frame.setLocation(500, 100);
frame.setLayout(null);
//生成组件
final JTextField name = new JTextField();
name.setBounds(79, 10, 103, 25);
final JTextField num = new JTextField();
num.setBounds(79, 53, 103, 25);
final JTextField sex = new JTextField();
sex.setBounds(79, 101, 103, 25);
final JTextField age = new JTextField();
age.setBounds(79, 161, 103, 25);
final JTextField g1 = new JTextField();
g1.setBounds(79, 216, 103, 25);
final Jtextarea show = new Jtextarea();
show.setBounds(194, 12, 388, 274);
frame.add(show);
show.setFont(new Font("Serif",Font.BOLD,18));
frame.add(show);
frame.add(name);
frame.add(num);
frame.add(sex);
frame.add(age);
frame.add(g1);
frame.add(show);
JLabel label = new JLabel("学号:");
label.setBounds(12, 55, 63, 13);
frame.getContentPane().add(label);
JLabel label_1 = new JLabel("姓名:");
label_1.setBounds(12, 10, 63, 13);
frame.getContentPane().add(label_1);
JLabel label_2 = new JLabel("性别:");
label_2.setBounds(12, 110, 63, 13);
frame.getContentPane().add(label_2);
JLabel label_3 = new JLabel("年龄:");
label_3.setBounds(12, 167, 63, 13);
frame.getContentPane().add(label_3);
JLabel label_4 = new JLabel("成绩:");
label_4.setBounds(12, 226, 70, 13);
frame.getContentPane().add(label_4);
//添加学生
JButton btnAdd =new JButton("添加");
btnAdd.setBounds(12, 362, 104, 23);
frame.add(btnAdd);
btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Student s1 = new Student(Integer.parseInt(num.getText()),name.getText(), sex.getText(),Integer.parseInt(age.getText()),Integer.parseInt(g1.getText()));
//放到集合
cotroller.getList().add(s1);
//打印
for(int i = 0;i
三、运行效果(初始界面、添加界面、刷新界面)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



