Java 学生管理系统 Cs框架

来源:互联网 发布:linux 字体目录 编辑:程序博客网 时间:2024/05/17 09:01

文件名为:CreateWindow.java内容

/* 2006.06.22 By Siner    E-mail:siner2005@QQ.com    QQ:312999963  
   版权所有^_^ ,谢谢合作。
*/
import java.awt.*;
import java.awt.List; //在窗口中要定义List对象要用到此包
import javax.swing.*;  
import java.awt.event.*; //定义窗口,以及按钮事件要用到此包
import java.text.*; //转换日期格式要用到此包
import java.util.*; //获取时间时要用到此包
import java.io.*;

//创建CreateWindow类
public  class CreateWindow extends Frame implements ActionListener,ItemListener{
 Frame StudentFrame = new Frame("学生管理系统  2006.06.15 By Siner" );
    JButton ClearBtn,OpenBtn,SaveBtn,DeleBtn,AddBtn,DialogOK_btn,DialogChance_btn;
 List ProFessionList,StuInforList;
 Label StuState,StuDialog_Lab;
 TextField  StuNameTxt,StuMath,StuEnglish,StuPolitics,StuTotalNum;
 Choice ClassNum,StuNum,MusicChoice;
 Checkbox sex1,sex2;
 CheckboxGroup StuSex;
 JDialog StuOption_Dialog;
 
 
 //定义CreateWindow方法(用来初始化窗口)
    CreateWindow(){
    StudentFrame.addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent e) {
      System.exit(0);
     }
    });
      } //CreateWindow方法结束


   void init(){
   StudentFrame.setSize(600,500); //设置窗口大小
   StudentFrame.setLocation(0,0); //设置窗口初始位置
   /*按钮*/
   OpenBtn = new JButton(new ImageIcon("StudentImage/btn_Load.gif" )); //载入记录
   OpenBtn.addActionListener(this);
   SaveBtn = new JButton(new ImageIcon("StudentImage/btn_ok.gif" )); //保存信息
   SaveBtn.addActionListener(this);
   DeleBtn = new JButton(new ImageIcon("StudentImage/btn_dele.GIF" )); //删除记录
   DeleBtn.addActionListener(this);
   AddBtn = new JButton(new ImageIcon("StudentImage/btn_Add.gif" )); //添加记录
   AddBtn.addActionListener(this);
   ClearBtn = new JButton(new ImageIcon("StudentImage/btn_Clear.gif" )); //清除记录
   ClearBtn.addActionListener(this);
   /*专业*/
   ProFessionList = new List(3,false);//定义ProFessionList 3行可视,不可多选
   ProFessionList.add("计算机应用技术" );
   ProFessionList.add("计算机网络技术" );
   ProFessionList.add("  计算机软件  " );
   ProFessionList.add("计算机通讯技术" );
   ProFessionList.add("计算机系统工程" );
   ProFessionList.add("计算机科学技术" );
   ProFessionList.add("计算机辅助制图" );
   ProFessionList.add("计算机辅助制造" );
   
   ProFessionList.select(0);
   /*班级*/
      ClassNum = new Choice();
   ClassNum.addItem("03-1班" );
   ClassNum.addItem("03-2班" );
   ClassNum.addItem("03-3班" );
   ClassNum.addItem("03-4班" );
   ClassNum.addItem("04-1班" );
   ClassNum.addItem("04-2班" );
   ClassNum.addItem("04-3班" );
   /*学号*/
   StuNum = new Choice();
   for (int x=1;x<=50 ;x++ )
   {StuNum.addItem(x+"号" );
   }
   /*性别*/
   StuSex = new CheckboxGroup();
   sex1 = new Checkbox("男",StuSex,true);
   sex2 = new Checkbox("女",StuSex,false);
   /*学生基本信息*/
   StuNameTxt = new TextField("Siner",6);
   StuMath = new TextField(2);
   StuEnglish = new TextField(2);
   StuPolitics = new TextField(2);
   StuTotalNum = new TextField(3);
   /*学生信息列表*/
   StuInforList = new List(6,true);
   /*背景音乐下拉菜单*/
   MusicChoice = new Choice();
   MusicChoice.addItem("music 1" );
   MusicChoice.addItem("music 2" );
   MusicChoice.addItem("music 3" );
   MusicChoice.addItem("music 4" );
   MusicChoice.addItem("music 5" );
   MusicChoice.addItem("无音乐" );
   MusicChoice.addItemListener(this);
   /*状态栏*/
   StuState = new Label("状态栏" );
   /*提示对话框*/
   //StuOption_Dialog=new JDialog(StudentFrame);
   //StuOption_Dialog.setLayout(null);
   //DialogOK_btn = new JButton("确定" );
   //DialogChance_btn = new JButton("取消" );
   //StuDialog_Lab = new Label();
   //StuOption_Dialog.setSize(200,150);
   //DialogOK_btn.setBounds(30,80,60,20);
   //DialogChance_btn.setBounds(100,80,60,20);
   //StuOption_Dialog.add(DialogOK_btn);
   //StuOption_Dialog.add(DialogChance_btn);
   //StuOption_Dialog.add(StuDialog_Lab);
   }


   public void SFsetLayout(){
   StudentFrame.setLayout(new BorderLayout()); //为StudentFrame添加边界布局

   Font TitleLabelFont = new Font("Dialog",Font.BOLD,20); //定义TitleLabelFont字体对象
   Label TitleLabel=new Label("学生管理",Label.CENTER); //定义标签TitleLabel对象      
      TitleLabel.setFont(TitleLabelFont); //为标签TitleLabel设置字体
   TitleLabel.setBackground(Color.red); //为标签TitleLabel设置背景色
   TitleLabel.setForeground(Color.green);//为标签TitleLabel设置前景色

   Date myDate; //定义myDate变量
   myDate = new Date();
   DateFormat myDateFormat=DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA); //设置日期格式为中国式
   DateFormat myTimeFormat=DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA); //设置时间格式
   Label DateLabel = new Label(myDateFormat.format(myDate)+" "+myTimeFormat.format(myDate),Label.RIGHT);

   /*定义窗口上部面板(标题标签,时间标签)*/
   Panel TopPanel = new Panel(new GridLayout(2,1));
   TopPanel.add(TitleLabel);
   TopPanel.add(DateLabel);
      StudentFrame.add("North",TopPanel);
   /*添加窗口上部面板结束*/

   /*定义窗口底部面板(基本按钮,状态栏)*/
   Panel ButtonPanel = new Panel(); //定义ButtonPanel面板
   ButtonPanel.setLayout(new GridLayout(1,5)); //定义一行五列的布局
   ButtonPanel.add(OpenBtn);
   ButtonPanel.add(SaveBtn);
   ButtonPanel.add(DeleBtn);
   ButtonPanel.add(AddBtn);
   ButtonPanel.add(ClearBtn);
   Panel StuStatePanel = new Panel(new GridLayout(1,1));
   StuStatePanel.add(StuState);
   Panel BottomPanel = new Panel(new GridLayout(2,1));
   BottomPanel.add(StuStatePanel);
   BottomPanel.add(ButtonPanel);

      StudentFrame.add("South",BottomPanel);
   /*添加窗口底部面板结束*/


   /*定义窗口中间主要面板(学生成绩,学生基本信息,及其他)*/
      Panel BasePanel = new Panel(new GridLayout(4,1)); //定义BasePanel面板
   
   Panel Base3Panel = new Panel(new GridLayout(2,3)); //定义BasePanel面板
   Base3Panel.add(new Label("专业:" ));
   Base3Panel.add(new Label("班级编号:" ));
   Base3Panel.add(new Label("学号:" ));
   Base3Panel.add(ProFessionList);
   Base3Panel.add(ClassNum);
   Base3Panel.add(StuNum);
   Panel Base4Panel = new Panel(new GridLayout(4,4)); //定义BasePanel面板
   Base4Panel.add(new Label("性别:" ));
   Base4Panel.add(sex1);
   Base4Panel.add(sex2);
   Base4Panel.add(new Label("" ));
   Base4Panel.add(new Label("学生姓名:" ));
   Base4Panel.add(StuNameTxt);
   Base4Panel.add(new Label("数学成绩:" ));
   Base4Panel.add(StuMath);
   Base4Panel.add(new Label("英语成绩:" ));
   Base4Panel.add(StuEnglish);
   Base4Panel.add(new Label("政治成绩:" ));
   Base4Panel.add(StuPolitics);
   Base4Panel.add(new Label("学生信息窗口:" ));


   Panel Base5Panel = new Panel(new GridLayout(1,0)); //定义BasePanel面板
   
   Base5Panel.add(StuInforList);
   Panel Base6Panel = new Panel(); //定义BasePanel面板
   Base6Panel.add(new Label("背景音乐:" ));
   Base6Panel.add(MusicChoice);
   Base6Panel.add(new JLabel(new ImageIcon("StudentImage/SinerLogo.gif" )));

   BasePanel.add(Base3Panel);
   BasePanel.add(Base4Panel);
   BasePanel.add(Base5Panel);
   BasePanel.add(Base6Panel);
   StudentFrame.add("Center",BasePanel);  
   /*添加窗口中间主要面板结束*/

   StudentFrame.setBackground(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));//设置窗口背景颜色   
   StudentFrame.show();  
   
   }


   public static void main(String args[]){ 
   CreateWindow StudentWin= new CreateWindow();  //定义CreateWindow对象
   StudentWin.init(); //对CreateWindow对象进行初始设置
      StudentWin.SFsetLayout(); 
   }//main 方法结束


   /*以下是对按钮事件进行设置 2006.06.18 by Sienr*/
   public void actionPerformed(ActionEvent StuButton_Event){
    Exception aa = new Exception();
    String storeStr="";
    //如果是 添加记录 按钮
    if(StuButton_Event.getSource()==AddBtn) 
    { String SexString= "男",ErrorMessage="";
      boolean Pass_Flag = true;
   if(sex2.getState()) SexString="女";
   if((StuNameTxt.getText()).equals("" )==true || (StuMath.getText()).equals("" )==true || (StuEnglish.getText()).equals("" )==true || (StuPolitics.getText()).equals("" )==true )
    { Pass_Flag=false; ErrorMessage="■学生信息输入不全!■";}

       try{ int TotalFenShu,MathFenshu,EnglishFenshu,PoliticsFenshu;
         MathFenshu=Integer.parseInt(StuMath.getText());
      EnglishFenshu=Integer.parseInt(StuEnglish.getText());
      PoliticsFenshu=Integer.parseInt(StuPolitics.getText());
         TotalFenShu = MathFenshu+EnglishFenshu+PoliticsFenshu;
      if(MathFenshu<0 || MathFenshu>100 || EnglishFenshu<0 || EnglishFenshu>100 || PoliticsFenshu<0 || PoliticsFenshu>100) {ErrorMessage="学生成绩超出范围0-100";Pass_Flag=false;}
         storeStr ="姓名: "+StuNameTxt.getText()+" 性别: "+SexString+" 专业: "+ProFessionList.getSelectedItem()+" 班级编号: "+ClassNum.getSelectedItem()+" 学号: "+StuNum.getSelectedItem()+" 数学: "+StuMath.getText()+" 英语: "+StuEnglish.getText()+" 政治: "+StuPolitics.getText()+" 总分: "+TotalFenShu;}
    catch(NumberFormatException cm){ ErrorMessage="成绩应为数据";Pass_Flag=false; }

   if(Pass_Flag==true) {
     StuInforList.add(storeStr); 
     StuState.setText("添加记录成功!" );
        if(StuNum.getSelectedIndex()!=StuNum.getItemCount()-1)
         StuNum.select(StuNum.getSelectedIndex()+1); 
   }else{
   StuState.setText("添加记录失败!"+ErrorMessage);
   }   
    }
    //如果是 删除记录 按钮
    if(StuButton_Event.getSource()==DeleBtn) 
    {   int Total_RemoveNum=0;
     for(int i=0;i<=StuInforList.getItemCount();i++){
     if(StuInforList.isIndexSelected(i))    
     {StuInforList.remove(i); Total_RemoveNum++;} }
     if(Total_RemoveNum==0)
     StuState.setText("请选择要删除的记录!" ); 
     else
     StuState.setText("删除记录成功!"+"删除记录条数为"+Total_RemoveNum+"条" ); 
    }
    //如果是 载入信息 按钮
    if(StuButton_Event.getSource()==OpenBtn) 
       { try{ FileInputStream FileIn = new FileInputStream("StuInfor.txt" );
           BufferedReader FileRead = new BufferedReader(new InputStreamReader(FileIn));
     StuState.setText("正在载入文件记录!请稍后... ●○2006.07.01 By Siner○●" );
     int i=0;
     while(true){
      String xxx=FileRead.readLine();
      if(xxx==null) break;
      StuInforList.add(xxx); i++; }
     FileRead.close(); 
     StuState.setText("载入文件记录成功!"+"共载入记录数:"+i+"条" );}
    catch(FileNotFoundException fe){StuState.setText("载入文件记录失败!" );}
    catch(IOException ioe){}
    }
    //如果是 保存信息 按钮
    if(StuButton_Event.getSource()==SaveBtn) 
       {    ///StuDialog_Lab.setText("OK!" );
      /// StuOption_Dialog.show();
     try{ FileOutputStream FileOut = new FileOutputStream("StuInfor.txt",false); //true为在文件尾添加记录,false则清除以前文件中的记录,重新定入记录
          BufferedWriter FileWrite = new BufferedWriter(new OutputStreamWriter(FileOut));
    for(int i=0;i<StuInforList.getItemCount();i++){
        FileWrite.write(StuInforList.getItem(i));
     FileWrite.newLine();}
     FileWrite.close(); 
     StuState.setText("保存记录成功!2006.06.30 By Siner" );}
    catch(FileNotFoundException fe){StuState.setText("保存记录失败! 没有找到指定的文件 " );}
    catch(IOException ioe){}
     }
     //如果是 清除记录 按钮
    if(StuButton_Event.getSource()==ClearBtn) 
    {  StuInforList.removeAll();
       StuState.setText("记录清除完毕! ★☆★☆" );}//对StuInforList列表框的内容全部清除 
   }

   /*以下是对MusicChoice列表框触发事件进行设置 2006.06.22 by Sienr*/
   public void itemStateChanged(ItemEvent MCEvent){
      if(MCEvent.getSource()==MusicChoice  && MusicChoice.getSelectedItem()!="无音乐" )
    { StuState.setText("『Sorry! 此功能尚未建设』" );   }  //播放相应的背景音乐
   }

};// CreateWindow 类结束

StuInfor.txt文件内容为:

姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 2号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 3号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 4号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 5号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 6号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 7号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 8号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 9号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 10号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 11号 数学: 99 英语: 45 政治: 78 总分: 555

 
原创粉丝点击