欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java學(xué)生信息管理系統(tǒng)MVC架構(gòu)詳解

 更新時間:2017年11月14日 14:05:28   作者:那茲  
這篇文章主要為大家詳細(xì)介紹了java學(xué)生信息管理系統(tǒng)MVC架構(gòu)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java學(xué)生信息管理系統(tǒng)MVC架構(gòu),供大家參考,具體內(nèi)容如下

一、項目結(jié)構(gòu)

        學(xué)生信息管理系統(tǒng)分三層進(jìn)行實現(xiàn)。student.java主要提供數(shù)據(jù),cotroller.java的功能是綁定試圖和計算數(shù)據(jù)。Stuview.java用于單一的用來顯示數(shù)據(jù)。

二、源碼

1.1、Student 類

/* 
 * @FileName: Student.class 
 * @version:1.0 
 * @author:nazi 
 * 描述:模型層 
 * */ 
import java.io.Serializable; 
 
/* 
 * Summary: Student類實現(xiàn)序列化接口,用于對象的保存 
 * @author:nazi 
 * @version:1.0 
 * */ 
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+"學(xué)號:"+num+"性別:"+sex+"年齡:"+age+"成績:"+grade; 
     
  } 
 
} 

1.2、Cotroller類

/* 
 * 文件名: Cotroller.java 
 * 描述:mvc中的c,用來管理模型層的數(shù)據(jù) 
 * @authur:Nazi 
 * function :增、刪、改、查、保存、更新 
 * */ 
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; 
 
 
/* 
 * Cotroller類集中對ArrayList<Student>進(jìn)行操作 
 * @Author nazi 
 * @version 1.0 
 * */ 
public class Cotroller { 
   
  //student數(shù)據(jù)集合 
  private ArrayList<Student> list; 
   
  public Cotroller(ArrayList<Student> l){ 
    this.list =l; 
  } 
   
  /* 
   * rturn a ArrayList<Student> 
   * */ 
  public ArrayList<Student> getList() 
  { 
    return list; 
  } 
   
  /* 
   * 初始化Student數(shù)組 
   * */ 
  public void setList(ArrayList<Student> list) 
  { 
    this.list = list; 
  } 
   
  /* 
   * add a student to the List 
   * */ 
  public void add(Student s) 
  { 
    list.add(s); 
  } 
   
  /* 
   * remove the student from list 
   * */ 
  public void remove(int id) 
  { 
    for(Iterator<Student> iter = list.iterator(); iter.hasNext();) 
    { 
      Student s = iter.next(); 
       
      if(s.getNum() == id) 
      { 
        list.remove(s); 
      } 
    } 
  } 
 
  /* 
   * print the specific student 
   * */ 
  public String printAll(int i) { 
     return list.get(i).toString(); 
  } 
   
  /* 
   * 功能簡述:將實現(xiàn)序列化后的對象寫入到文件中。 
   * 文件輸出地址:"/home/nazi/2.txt" 文件地址可以更改 
   * */ 
  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(); 
    } 
     
  } 
 
  /* 
   * function: 從指定路徑讀取文件,然后將對象狀態(tài)進(jìn)行賦值使用 
   * 
   * */ 
  @SuppressWarnings("unchecked") 
  public void fileIn() throws FileNotFoundException{ 
    FileInputStream fi = new FileInputStream("/home/nazi/2.txt"); 
    try { 
      ObjectInputStream si = new ObjectInputStream(fi); 
      list = (ArrayList<Student>) 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類

/* 
 * FileName:StuView.class 
 * 描述:以特定的方式展示數(shù)據(jù) 
 * @Atuthor:nazi 
 * @version:1.0 
 * */ 
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; 
 
 
/* 
 * StuView 類用于展示數(shù)據(jù) 
 * @author:nazi 
 * @version:1.0 
 * */ 
public class StuView {  
  private static Cotroller cotroller; 
  public static void main(String args[]){ 
    //創(chuàng)建管理者 
    cotroller = new Cotroller(new ArrayList<Student>()); 
    //界面 
    initFrame(); 
  } 
   
  /* 
   * InitFrame()中含有各種類型的控件,以及控件所對應(yīng)的事件處理步驟 
   * */ 
  protected static void initFrame(){ 
      JFrame frame = new JFrame("學(xué)生信息管理系統(tǒng)"); 
      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("學(xué)號:"); 
      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); 
       
       
       
      //添加學(xué)生 
      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<cotroller.getList().size();i++){ 
            show.append("\n"); 
            show.append(cotroller.printAll(i)); 
          } 
           
           
        } 
      }); 
       
      //保存為文件 
      JButton btnSave =new JButton("保存");; 
      btnSave.setBounds(478, 362, 104, 23); 
      frame.add(btnSave); 
      btnSave.addActionListener(new ActionListener() { 
        public void actionPerformed(ActionEvent arg0) { 
          try { 
            cotroller.fileOt(); 
          } catch (FileNotFoundException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
          } 
        } 
      }); 
       
      //刷新 
      JButton btnRefresh = new JButton("刷新"); 
      btnRefresh.setBounds(327, 362, 104, 23); 
      frame.add(btnRefresh); 
      btnRefresh.addActionListener(new ActionListener() { 
         
        @Override 
        public void actionPerformed(ActionEvent arg0) { 
          try { 
            cotroller.fileIn(); 
          } catch (FileNotFoundException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
          } 
          //打印 
          for(int i = 0;i<cotroller.getList().size();i++){ 
            show.append("\n"); 
            show.append(cotroller.printAll(i)); 
          } 
           
        } 
      }); 
       
      //刪除 
      JButton button_1 = new JButton("刪除"); 
      button_1.setBounds(169, 362, 104, 23); 
      button_1.addActionListener(new ActionListener() { 
         
        @Override 
        public void actionPerformed(ActionEvent arg0) { 
          // TODO Auto-generated method stub 
           
        } 
      }); 
      frame.add(button_1); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.setVisible(true);  
    } 
 
} 

三、運行效果(初始界面、添加界面、刷新界面)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用idea和gradle編譯spring5源碼的方法步驟

    使用idea和gradle編譯spring5源碼的方法步驟

    這篇文章主要介紹了詳解使用idea和gradle編譯spring5源碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Spring Boot/Angular整合Keycloak實現(xiàn)單點登錄功能

    Spring Boot/Angular整合Keycloak實現(xiàn)單點登錄功能

    Keycloak新的發(fā)行版命名為Quarkus,專為GraalVM和OpenJDK HotSpot量身定制的一個Kurbernetes Native Java框架,計劃2019年底正式發(fā)布。這篇文章主要介紹了Spring Boot/Angular整合Keycloak實現(xiàn)單點登錄,需要的朋友可以參考下
    2019-10-10
  • org.slf4j.Logger中info()方法的使用詳解

    org.slf4j.Logger中info()方法的使用詳解

    這篇文章主要介紹了org.slf4j.Logger中info()方法的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java使用lambda自定義Arrays.sort排序規(guī)則說明

    Java使用lambda自定義Arrays.sort排序規(guī)則說明

    這篇文章主要介紹了Java使用lambda自定義Arrays.sort排序規(guī)則說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 關(guān)于spring data jpa一級緩存的問題

    關(guān)于spring data jpa一級緩存的問題

    這篇文章主要介紹了關(guān)于spring data jpa一級緩存的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • SpringBoot權(quán)限認(rèn)證-Sa-Token的使用詳解

    SpringBoot權(quán)限認(rèn)證-Sa-Token的使用詳解

    Sa-Token是一款輕量級Java權(quán)限認(rèn)證框架,它簡化了權(quán)限管理,提高了開發(fā)效率,本文通過實例介紹了Sa-Token的基本概念、與其他框架的比較、基本語法和高級用法,并探討了其核心原理和實際應(yīng)用場景,感興趣的朋友一起看看吧
    2024-09-09
  • java性能優(yōu)化之分代回收

    java性能優(yōu)化之分代回收

    這篇文章主要介紹了java性能優(yōu)化之分代回收,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • java中如何實現(xiàn) zip rar 7z 壓縮包解壓

    java中如何實現(xiàn) zip rar 7z 壓縮包解壓

    這篇文章主要介紹了java中如何實現(xiàn) zip rar 7z 壓縮包解壓問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 淺析Java編程中類和對象的定義

    淺析Java編程中類和對象的定義

    下面小編就為大家?guī)硪黄獪\析Java編程中類和對象的定義。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-05-05
  • java導(dǎo)出Excel通用方法實例

    java導(dǎo)出Excel通用方法實例

    這篇文章主要介紹了java導(dǎo)出Excel方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論