⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servermainframe.java

📁 学生管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 *@Server.java
 *@author weiWang
 *@date 2006-3-27
 */
 package com.herb.server;
 //服务器类,用于添加学生信息(成绩除外),响应教师和学生的请求信息
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.table.*;
 import javax.swing.event.*;
 import java.util.*;
 import java.io.*;

 public class ServerMainFrame extends JFrame{
    Dimension sc=Toolkit.getDefaultToolkit().getScreenSize();
    static DefaultTableModel m;
    JTable table;
    static JList list;
    static Vector vector=new Vector();
    static DefaultListModel listModel=new DefaultListModel();
    ServerPart serverpart=new ServerPart();
    static String[] name={"学号","姓名","性别","系名","班级","课程","成绩","联系电话"}; 
    static Object[][] data;
    static Vector majorVector=new Vector();    
    JPanel listPanel=new JPanel();
    JPanel listBtnPanel=new JPanel();
    JPanel tablePanel=new JPanel();
    JButton listDelBtn=new JButton("删除");
    JButton listAddBtn=new JButton("新增");
    JButton addBtn=new JButton("新增",new ImageIcon("com/herb/server/icons/add.gif"));
    JButton delBtn=new JButton("删除",new ImageIcon("com/herb/server/icons/del.png"));
    JButton xiuBtn=new JButton("修改",new ImageIcon("com/herb/server/icons/reset.gif"));
    JButton paixuBtn1,paixuBtn2,paixuBtn3;
    JButton adBtn,dlBtn,resetBtn,array1,array2,array3,searchBtn1,searchBtn2;  //工具栏中的按钮
    JPanel btnPanel=new JPanel();
    JMenuBar bar=new JMenuBar();
    JMenu fileMenu=new JMenu("文件");
    JMenu bianjiMenu=new JMenu("编辑");
    JMenu editMenu=new JMenu("操作"); 
    JMenuItem delMenuItem=new JMenuItem("删 除       Ctrl+D");
    JMenuItem resetMenuItem=new JMenuItem("修 改      Ctrl+R");
    JMenuItem addMenuItem=new JMenuItem("新 建       Ctrl+N");
    JMenuItem seeMenuItem=new JMenuItem("查 看..     Ctrl+S");
    JMenuItem exitMenuItem=new JMenuItem("退 出       Ctrl+X");
    JMenuItem arrayItem1=new JMenuItem("按学号排序   Ctrl+I");
    JMenuItem arrayItem2=new JMenuItem("按姓名排序   Ctrl+N");
    JMenuItem arrayItem3=new JMenuItem("按班级排序   Ctrl+C");
    JMenu searchMenu=new JMenu("查 找        Ctrl+S");
    JMenuItem searchItem1=new JMenuItem("按学号查找  ");
    JMenuItem searchItem2=new JMenuItem("按姓名查找  ");

    JToolBar tableToolBar=new JToolBar(); 
    JToolBar listToolBar=new JToolBar();
    JTabbedPane tabbedPanel=new JTabbedPane();   
    static DefaultListModel hislistModel;
    static JList hisList;
    

    public ServerMainFrame(){
      super("学生管理系统(服务器端)");
      Thread st=new Thread(serverpart);       //服务器开始运作
      st.start();
      addBtn.setPreferredSize(new Dimension(100,26));
      delBtn.setEnabled(true);
      delBtn.setPreferredSize(new Dimension(100,26));
      xiuBtn.setPreferredSize(new Dimension(100,26));
      btnPanel.add(addBtn);
      addBtn.addActionListener(new ActionListener(){ 
         public void actionPerformed(ActionEvent e){
             addEvent();     //添加事件
         }
      });
      
      addBtn.setBackground(new Color(225,234,253));
      addBtn.setForeground(new Color(71,30,5));
      addBtn.setToolTipText("增加新的学生信息");
      btnPanel.add(delBtn);
      delBtn.addActionListener(new ActionListener(){ 
         public void actionPerformed(ActionEvent e){
             deleteEvent();   //删除事件
         }
      });
    
      delBtn.setBackground(new Color(225,234,253));
      delBtn.setForeground(new Color(71,30,5));
      delBtn.setToolTipText("删除学生信息");
      btnPanel.add(xiuBtn);
      xiuBtn.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
             resetEvent();    //修改事件
         } 
      });
     
      xiuBtn.setBackground(new Color(225,234,253));
      xiuBtn.setForeground(new Color(71,30,5));
      xiuBtn.setToolTipText("修改学生信息");
      paixuBtn1=new JButton("按学号排序",new ImageIcon("com/herb/server/icons/paixu1.gif"));
      paixuBtn1.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
               arrayByStudentId();
          }
      });   
     
      paixuBtn1.setForeground(new Color(71,30,5));
      paixuBtn1.setPreferredSize(new Dimension(110,27));
      btnPanel.add(paixuBtn1);
      
      paixuBtn2=new JButton("按班级排序",new ImageIcon("com/herb/server/icons/paixu2.gif"));
      paixuBtn2.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
               arrayByStudentClass();
          }
      });
    
      paixuBtn2.setForeground(new Color(71,30,5));
      paixuBtn2.setPreferredSize(new Dimension(110,27));
      btnPanel.add(paixuBtn2);
      
      paixuBtn3=new JButton("按姓名排序",new ImageIcon("com/herb/server/icons/paixu3.gif"));
     
      paixuBtn3.setForeground(new Color(71,30,5));
      paixuBtn3.setPreferredSize(new Dimension(110,27));
      paixuBtn3.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
               arrayByStudentName();
          }
      });
      btnPanel.add(paixuBtn3);
      btnPanel.setBorder(BorderFactory.createTitledBorder("选择操作:"));

      initMenu();
      initTable(); 
      //initListToolBar();
      initList(); 
      initTabbedPanel();
      getContentPane().setLayout(new BorderLayout(5,5));
      getContentPane().add("West",tabbedPanel);
      getContentPane().add("North",bar);
      tablePanel.setLayout(new BorderLayout(5,5));
      tablePanel.add("Center",new JScrollPane(table));
      tablePanel.add("South",btnPanel);
      
      initTableToolBar();
      tablePanel.add("North",tableToolBar);     // add tableToolBar
      getContentPane().add("Center",tablePanel);
      getContentPane().add("South",new JLabel(""));
      getContentPane().add("East",new JLabel(""));
      setSize(950,700);
      show(); 
      LocationSet.setFrameLocation(this);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    //设置组件字体
    public void setComponentFont(){
       FontSet.fontSet(btnPanel,1);       
 
    }
 
    //初始化卡片面板
    public void initTabbedPanel(){
       JPanel historyPanel=new JPanel();
       historyPanel.setLayout(new BorderLayout(5,5));
       historyPanel.setBorder(BorderFactory.createTitledBorder("历史纪录:"));
       hislistModel=new DefaultListModel();
       hisList=new JList(hislistModel); 
       hisList.setToolTipText("按住Ctrl或Shift键可以多选!");
       hisList.setForeground(new Color(113,61,2));
       hisList.setBackground(new Color(253,248,254));
       hisList.setSelectionBackground(new Color(217,221,253));
       hisList.setSelectionForeground(Color.red);
       hisList.setFont(new Font("宋体",Font.BOLD,12));
       historyPanel.add("Center",new JScrollPane(hisList));
       historyPanel.setPreferredSize(new Dimension(140,400));
       JButton delBtn=new JButton("删除历史纪录",new ImageIcon("com/herb/server/icons/his_del.png"));
       delBtn.setToolTipText("请选择要删除的纪录");
       delBtn.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
             deleteHistoryInfor();
          }
       });
       historyPanel.add("South",delBtn);

       tabbedPanel.setFont(new Font("Fixedsys",Font.PLAIN,9));    
       tabbedPanel.addTab("Major List",new ImageIcon("com/herb/server/icons/list.gif"),listPanel);
       tabbedPanel.setToolTipTextAt(0,"专业名列表");
       tabbedPanel.addTab("History  ",new ImageIcon("com/herb/server/icons/history.gif"),historyPanel);
       tabbedPanel.setToolTipTextAt(1,"历史纪录"); 
         
       tabbedPanel.addChangeListener(new ChangeListener(){
          public void stateChanged(ChangeEvent e){
             System.out.println("here");
             if(tabbedPanel.getSelectedIndex()==1){
                 System.out.println(tabbedPanel.getSelectedIndex());
                 updateHistroyList();
             }
          }
       });
    }
 
    //当切换到历史面板时更新历史纪录列表
    public static void updateHistroyList(){
       hislistModel.removeAllElements();      //删除所有数据先
       Vector history=new Vector();
       history=FileEvent.getHistoryInfor();   
       System.out.println(history.toString());
       for(int i=0;i<history.size();i++)    //添加数据
          hislistModel.addElement(history.elementAt(i).toString());
    }

    //删除历史纪录
    public  void deleteHistoryInfor(){
       int[] index=new int[(hisList.getSelectedIndices()).length];
       index=hisList.getSelectedIndices();
       System.out.println("要删除的个数="+index.length);
       for(int i=0;i<index.length;i++){ 
         System.out.print("分别删除第");
         System.out.print(index[i]+"行,");
       }
       if(index.length==0)
           new MsgDialog(this,"请选择要删除的纪录!");    
       
       else{ 
          int z=1;
          for(int i=0;i<index.length;i++){                     //同时删除多项(可以成功,但还是会出现
             System.out.println("删除第"+i+"行时,index["+i+"]=="+index[i]);  //araayIndexOutOfBoundsException...)     
             hislistModel.removeElementAt(index[i]);
             FileEvent.deleteHistoryInfor(index[i]);
             index[i+1]=index[i+1]-z++;           
           }
       }
    }

    //表格工具栏初始化
    public void initTableToolBar(){
       tableToolBar.setToolTipText("你可以拖动我的哟!");
       adBtn=new JButton(new ImageIcon("icons/add.gif"));
       adBtn.setToolTipText("增加新的学生信息");
       dlBtn=new JButton(new ImageIcon("com/herb/server/icons/del_tool.png"));
       dlBtn.setToolTipText("删除学生信息");
       resetBtn=new JButton(new ImageIcon("com/herb/server/icons/write_tool.gif"));
       resetBtn.setToolTipText("修改学生信息");
       array1=new JButton(new ImageIcon("com/herb/server/icons/paixu1.gif"));
       array1.setToolTipText("按学号排序表格");
       array2=new JButton(new ImageIcon("com/herb/server/icons/paixu2.gif"));
       array2.setToolTipText("按班级排序表格");
       array3=new JButton(new ImageIcon("com/herb/server/icons/paixu3.gif"));
       array3.setToolTipText("按姓名排序表格");
       searchBtn1=new JButton(new ImageIcon("com/herb/server/icons/searchI.gif"));
       searchBtn1.setToolTipText("按学号查找");
       searchBtn2=new JButton(new ImageIcon("com/herb/server/icons/searchN.gif"));
       searchBtn2.setToolTipText("按姓名查找");
       tableToolBar.add(adBtn);
       adBtn.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
              addEvent();      // 新增事件
          }
       });
       tableToolBar.add(dlBtn);
       dlBtn.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
              deleteEvent();  //删除事件
           }
       });
       tableToolBar.add(resetBtn);
       resetBtn.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
             resetEvent();    //修改事件
         } 
      });
       tableToolBar.addSeparator();
       tableToolBar.add(array1);
       array1.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
               arrayByStudentId();   //按学号排序
          }
       });
       tableToolBar.add(array2);  
       array2.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
               arrayByStudentClass();  //按班级名排序
          }
       });
       tableToolBar.add(array3);
       array3.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
               arrayByStudentName();   //按学生名排序
          }
       });
       tableToolBar.addSeparator();
       tableToolBar.add(searchBtn1);
       searchBtn1.addActionListener(new ActionListener(){ 
          public void actionPerformed(ActionEvent e){
             searchById();    
          }
       }); 
       tableToolBar.add(searchBtn2);   
       searchBtn2.addActionListener(new ActionListener(){ 
          public void actionPerformed(ActionEvent e){
             searchByName();    
          }
       });     
    }      

    //列表初始化
    public void initList(){
        majorVector=FileEvent.getFileName();
        listPanel.setPreferredSize(new Dimension(140,400));
        list=new JList(listModel);
        list.setForeground(new Color(91,30,255));
        list.setBackground(new Color(240,248,255));
        list.setSelectionBackground(new Color(239,227,253));
        list.setSelectionForeground(new Color(157,2,37));
        list.setFont(new Font("宋体",Font.BOLD,12));
        list.addMouseListener(new MouseAdapter(){
           public void mouseClicked(MouseEvent e){
              if(e.getClickCount()==2){ 
                 vector=FileEvent.getStudent(
                 String.valueOf(list.getSelectedValue()));        //获得所有学生数据信息  
                 setData(vector);
                 setBtnEnabled(true);
              }
            }
         });  
        
        list.addListSelectionListener(new ListSelectionListener(){
           public void valueChanged(ListSelectionEvent e){
              if(list.isSelectionEmpty())           
                 listDelBtn.setEnabled(false);
              else
                 listDelBtn.setEnabled(true);
           }
        });
        for(int i=0;i<majorVector.size();i++)
            listModel.addElement(majorVector.elementAt(i));
        listPanel.setLayout(new BorderLayout(5,5));
        listBtnPanel.add(listAddBtn);
        listAddBtn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                 MajorAddFrame addframe=new MajorAddFrame();             
            }         
        });
 
        listBtnPanel.add(listDelBtn);
        listPanel.add("South",listBtnPanel); 
        listPanel.setBorder(BorderFactory.createTitledBorder("系 名:"));
        listDelBtn.addActionListener(new ActionListener(){ 
           public void actionPerformed(ActionEvent e){
              deleteListItem();
           }
        });
        listDelBtn.setEnabled(false);
        listPanel.add("West",new JLabel(""));
        listPanel.add("East",new JLabel(""));
        listPanel.add("North",new JLabel(""));

        listPanel.add("Center",new JScrollPane(list));
        
    }
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -