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

📄 panelforcourse.java

📁 学生学籍管理系统
💻 JAVA
字号:
 package E4;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import javax.swing.table.*;
import javax.swing.event.MouseInputListener;  
import javax.swing.table.AbstractTableModel;
import javax.swing.event.*;

 //显示信息
class panelForCourse extends JPanel implements ActionListener,TableModelListener,ListSelectionListener//专属某一学生
 { 
   public static JTable table;
    	
   public static int jishu;
   Table_Model_1 tm = new Table_Model_1(); 
    Object course [] = new Object[8];
    
    public static JLabel showNum=new JLabel("总数为:"+jishu);
    public static JLabel showCreditNum=new JLabel("总学分为:"+jishu);
    public static JTextField name=new JTextField("",8);
    public static JTextField id =new JTextField("",8);
    
    public static int tableRow = 0;
    public static int tableColumn = 0; 
     
    JPanel jpl=new JPanel();
    JPanel showDetail = new JPanel();
    JPanel forAdd = new JPanel();
    JPanel forAddNorth = new JPanel();
    JPanel forAddSouth = new JPanel();
    JPanel forAddCenter = new JPanel();
    
    JButton jAdd=new JButton("选课");
    JButton jUpdate=new JButton("修改");
    JButton jFind=new JButton("查找");
    JButton jDelete=new JButton("删除");
    JButton jRefresh=new JButton("刷新");
    JButton jShowclass=new JButton("班级");
    JButton jSet=new JButton("设置");
    
    TextField cno = new TextField("",8);
    TextField cname = new TextField("",8);
    TextField dept = new TextField("",8);
    TextField credit = new TextField("",8);
    TextField teacher = new TextField("",8);
    TextField semester = new TextField("",8);
    JButton selectCourse = new JButton("选择课程");
    JButton confirm = new JButton("确定");//只有在单个学生时才好使
    JButton concel = new JButton("取消");
    
    JPopupMenu popupMenu=new JPopupMenu(); //鼠标右键 
    JMenuItem deleteRow=new JMenuItem("删除此行记录");
    JMenuItem deleteStuInfor=new JMenuItem("删除课程");
    JMenuItem findInfor=new JMenuItem("查找记录");
    JMenuItem fresh = new JMenuItem("刷新");

    SearchForCourse sfc;//查找界面
    Delete_2 delete2;//删除
    framForUpdate ffu;//修改界面
    proceeSQL psql;
    dialogForSet dfs;//设置界面
    dialogForChoose dfc;//选择课程界面
    
    ListSelectionModel selectionMode=null;
    
   panelForCourse(JFrame f,String s,boolean b)
   {
   	
  

    sfc = new SearchForCourse(f,"查找选课信息",b);
   	delete2 = new Delete_2(f,"删除选课信息",b);
  	ffu =new framForUpdate(f,"输入要修改的学号",b);
  	dfc = new dialogForChoose(f,"选择课程",b);
  	dfs = new dialogForSet(f,"设置",false);
   	psql = new proceeSQL();
   	
    //setSize(800,450);

    super.setLayout(new BorderLayout(9,9));
 
    jishu = psql.getCourseAndStuInfor(tm.content);     
    showNum.setText(("总数为:"+jishu));
    table=new JTable(tm);
    

    popupMenu.add(deleteRow);
    popupMenu.addSeparator();
    popupMenu.add(deleteStuInfor);
    popupMenu.addSeparator();
    popupMenu.add(findInfor);
    popupMenu.addSeparator();
    popupMenu.add(fresh);

    
    deleteRow.addActionListener(this);
    deleteStuInfor.addActionListener(this);
    findInfor.addActionListener(this);
    fresh.addActionListener(this);

    
    showDetail.add(new JLabel("学号:",JLabel.CENTER));
    showDetail.add(id);
    showDetail.add(new JLabel("姓名:",JLabel.CENTER));
    showDetail.add(name);
    showDetail.add(selectCourse);
    selectCourse.addActionListener(this);
    showDetail.setLayout(new FlowLayout(FlowLayout.CENTER,6,6));
    
    forAdd.add(new JLabel("课程号:",JLabel.CENTER));
    forAdd.add(cno);
    forAdd.add(new JLabel("课程名:",JLabel.CENTER));
    forAdd.add(cname);
    forAdd.add(new JLabel("所属系:",JLabel.CENTER));
    forAdd.add(dept);
    forAdd.add(new JLabel("学分:",JLabel.CENTER));
    forAdd.add(credit);
    forAdd.add(new JLabel("任课教师:",JLabel.CENTER));
    forAdd.add(teacher);
    forAdd.add(new JLabel("学期:",JLabel.CENTER));
    forAdd.add(semester);
    forAdd.setLayout(new GridLayout(2,6,9,9));
    cno.setEditable(false);
    cname.setEditable(false);
    dept.setEditable(false);
    credit.setEditable(false);
    teacher.setEditable(false);
    semester.setEditable(false);
    semester.setEditable(false);
    
    forAddNorth.setLayout(new BorderLayout(5,6));
    forAddNorth.add(showDetail,BorderLayout.NORTH);
    forAddNorth.add(forAdd);
    
    forAddSouth.setLayout(new FlowLayout(FlowLayout.RIGHT,6,6));
    forAddSouth.add(confirm);
    forAddSouth.add(concel);
    confirm.addActionListener(this);
    concel.addActionListener(this);
    
    
 MouseInputListener mil=new MouseInputListener()   {  
   
  public void mouseClicked(MouseEvent e)   {  
  processEvent(e);  
  }  
   
  public void mousePressed(MouseEvent e)   {  
  processEvent(e);  
  }  
   
  public   void   mouseReleased(MouseEvent e)   {  
  processEvent(e);  
  if   ((e.getModifiers()   &   MouseEvent.BUTTON3_MASK)   !=   0)   {  
  popupMenu.show(table,   e.getX(),   e.getY());  
  }  
  }  
   
  public   void   mouseEntered(MouseEvent   e)   {  
  processEvent(e);  
  }  
   
  public   void   mouseExited(MouseEvent   e)   {  
  processEvent(e);  
  }  
   
  public   void   mouseDragged(MouseEvent   e)   {  
  processEvent(e);  
  }  
   
  public   void   mouseMoved(MouseEvent   e)   {  
  processEvent(e);  
  }  
   
  private   void   processEvent(MouseEvent   e)   {  
  if   ((e.getModifiers()   &   MouseEvent.BUTTON3_MASK)   !=   0)   {  
  MouseEvent   ne   =   new   MouseEvent(  
  e.getComponent(),   e.getID(),    
  e.getWhen(),   MouseEvent.BUTTON1_MASK,    
  e.getX(),   e.getY(),   e.getClickCount(),   false);  
  table.dispatchEvent(ne);  
  }  
  }  
   
  };  
  
  table.addMouseListener(mil);  
  table.addMouseMotionListener(mil);
  selectionMode=table.getSelectionModel();//取得table的ListSelectionModel.
  selectionMode.addListSelectionListener(this);
    
    
    jpl.add(jFind);
    jpl.add(jDelete);
    jpl.add(jRefresh);
    jpl.add(jSet);
    jpl.add(showNum);
    jpl.add(showCreditNum);
  
    jpl.setLayout(new GridLayout(10,1,2,9));
    
    forAddCenter.setLayout(new BorderLayout(5,6));
    forAddCenter.add(forAddNorth,BorderLayout.NORTH);
    forAddCenter.add(new JScrollPane(table)); 
    forAddCenter.add(forAddSouth,BorderLayout.SOUTH);

    super.add(jpl,BorderLayout.WEST);
    super.add(forAddCenter);      
     jAdd.addActionListener(this);
     jFind.addActionListener(this);
     jDelete.addActionListener(this);
     jRefresh.addActionListener(this);
     jShowclass.addActionListener(this);
     jSet.addActionListener(this);
     dfc.confirm.addActionListener(this);
     
     delete2.pDeleAll.handin.addActionListener(this);
     delete2.pDeleCla.handin.addActionListener(this);
     delete2.pDeleCol.handin.addActionListener(this);
     delete2.pDelePer.handin.addActionListener(this);
     
     sfc.pfscn.handin.addActionListener(this);
     sfc.pfscla.handin.addActionListener(this);
     sfc.pfsco.handin.addActionListener(this);
     sfc.pfsCourseName.handin.addActionListener(this);
     sfc.pfsi.handin.addActionListener(this);
     sfc.pfsn.handin.addActionListener(this);
     
   }
     
   public static void setTabelDisplay(Boolean tf){
   	    table.setVisible(tf);
   }
   
   public void reFresh(){
   table.setVisible(false);
   tm.content.removeAllElements();
   jishu =  psql.getCourseAndStuInfor(tm.content); 
   table.setVisible(true);
   showNum.setText("总数为:"+jishu);
   showCreditNum.setText("总学分为:");
   }
   
  public void valueChanged(ListSelectionEvent el){

   	    tableRow =table.getSelectedRow();
        tableColumn =table.getSelectedColumn();
      // label.setText("修改字段位置:"+(row+1)+" 行 "+(column+1)+" 列");
  }
   
   public void tableChanged(TableModelEvent e)//选中某一列,就吧他的值传到上面的信息栏中
    {  
    	int row =e.getFirstRow();
        int column = e.getColumn();      
        course[0] = tm.getValueAt(row,1);
        course[1] = tm.getValueAt(row,2);
        course[2] = tm.getValueAt(row,3);
        course[3] = tm.getValueAt(row,4);
        course[4] = tm.getValueAt(row,5);
        course[5] = tm.getValueAt(row,6);
        course[6] = tm.getValueAt(row,7);        
        course[7] = tm.getValueAt(row,8);
 
        psql.updateCourseDetail(course);
       
       reFresh();
        
    }
   
   
   public void actionPerformed(ActionEvent e){

  if(e.getSource()==confirm){
   	    course[0] = id.getText();
        course[1] = name.getText();
        course[2] = cno.getText();
        course[3] = cname.getText();
        course[4] = dept.getText();
        course[5] = credit.getText();
        course[6] = teacher.getText();        
        course[7] = semester.getText();
        if(id.getText().equals("")||cno.getText().equals("")||cname.getText().equals("")
        ||dept.getText().equals("")||name.getText().equals("")||semester.getText().equals("")){
            	JOptionPane.showMessageDialog(null, "请输入完整信息:"); 
            	return;	
            }
        else psql.insertScDetail(course);
        reFresh();
   	}
   	
   	else if(e.getSource()== dfc.confirm){
   	      if(dfc.cno.getText().equals("")){
            	JOptionPane.showMessageDialog(null, "请输入课程号:"); 
            	return;	
            }
            
        	boolean state = psql.weatherExistInCourse(dfc.cno.getText());
        	if(!state)
        	JOptionPane.showMessageDialog(null, "没有此课程");
        	 
        	else{

    	    psql.getCourseByCno(course,dfc.cno.getText());
    	    
            //id.setText(String.valueOf(course[0]));
           // name.setText(String.valueOf(course[1]));
            cno.setText(String.valueOf(course[2]));
            cname.setText(String.valueOf(course[3]));
            dept.setText(String.valueOf(course[4]));
            credit.setText(String.valueOf(course[5]));
            teacher.setText(String.valueOf(course[6]));
            semester.setText(String.valueOf(course[7]));

            } 
	
   	}

    else if(e.getSource()==selectCourse||e.getSource()==jAdd)
    {
    	dfc.setIdAndName(id.getText(),name.getText());
    	dfc.setDisplay(true);
    }
    
   	else if(e.getSource()==jFind){
   		sfc.setDisplay(true);
   	}
   	   	
   	else if(e.getSource()==jDelete||e.getSource()==deleteStuInfor){
   			delete2.setDisplay(true);
 
   	}

   	else if(e.getSource()==jRefresh||e.getSource()==fresh){
  		reFresh();
   	}
   	
   	else if(e.getSource()==sfc.pfscla.handin){
   		table.setVisible(false);
   		tm.content.removeAllElements();
  		jishu = psql.SearchCourseByClasses(tm.content,sfc.pfscla.classes.getSelectedItem());
  		table.setVisible(true);
   	}
   	
   	else if(e.getSource()==sfc.pfscn.handin){
   		table.setVisible(false);
   		tm.content.removeAllElements();
  		jishu = psql.SearchCourseByCno(tm.content,sfc.pfscn.jf_id.getText());
  		table.setVisible(true);
   	}
   	
   	else if(e.getSource()==sfc.pfsco.handin){
   		table.setVisible(false);
   		tm.content.removeAllElements();
   		jishu = psql.SearchCourseByCollege(tm.content,sfc.pfsco.college.getSelectedItem());
  		table.setVisible(true);
   	}
   	
   	else if(e.getSource()==sfc.pfsCourseName.handin){
   		table.setVisible(false);
   		tm.content.removeAllElements();
   		jishu = psql.SearchCourseByCname(tm.content,sfc.pfscn.jf_id.getText());
  		reFresh();
   	}
   	
   	else if(e.getSource()==sfc.pfsi.handin){
   		table.setVisible(false);
   		tm.content.removeAllElements();
   		jishu = psql.SearchCourseBySno(tm.content,sfc.pfsi.jf_id.getText());
  		table.setVisible(true);
   	}
   	
    else if(e.getSource()==sfc.pfsn.handin){
    	table.setVisible(false);
    	tm.content.removeAllElements();
    	jishu = psql.SearchCourseBySname(tm.content,sfc.pfsn.jf_id.getText());
  		table.setVisible(true);
   	}
   	
   	
   	else if(e.getSource()==delete2.pDeleAll.handin){
   		psql.DistroyAllCourse();
   		reFresh();
   	}
   	
   	else if(e.getSource()==delete2.pDeleCla.handin){
   		psql.DistroySCByClasses(delete2.pDeleCla.classes.getSelectedItem());
   		reFresh();
   	}
   	
   	else if(e.getSource()==delete2.pDeleCol.handin){
   		psql.DistroySCByCollege(delete2.pDeleCol.college.getSelectedItem());
   		reFresh();
   	}
   	
   	else if(e.getSource()==delete2.pDelePer.handin){
   		psql.DistroySCByID(delete2.pDelePer.jf_id.getText());
   		reFresh();
   	}
   	
   	else if(e.getSource()==jSet){
   		dfs.setDisplay(true);
   	}
   	
   	else if(e.getSource()==deleteRow){
     psql.DistroySCByIDAndCno(String.valueOf(tm.getValueAt(tableRow,1)),String.valueOf(tm.getValueAt(tableRow,3)));
  		reFresh();
    }
   	
   	}
   	
   public static void setIdAndName(String setId,String setName){
  	  id.setText(setId);
  	  name.setText(setName);
  }   
  
  
}

 class   Table_Model_1   extends   AbstractTableModel   {
  	   
   public Vector content = new Vector();   
   String[]   title_name   =   {"序号","学号","姓名","课程号","课程名","所属系","学分","任课教师","学期"};   
   
   Object TMInfor [] = new Object[9]; 
      
      public   String   getColumnName(int   col)   {   
                  return   title_name[col];   
          }   
    
          public   int   getColumnCount()   {   
                  return   title_name.length;   
          }   
    
          public   int   getRowCount()   {   
                  return   content.size();   
          }   
    
          public   Object   getValueAt(int   row,   int   col)   {   
                  return   (   (Vector)   content.get(row)).get(col);   
          }
          
      	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return true;	
          }  
      
	    public void setValueAt(Object value, int row, int col) {
         //  content.setElementAt(value,)
         for(int i=0;i<9;i++)
            TMInfor[i] = ((Vector)content.get(row)).get(i);
            TMInfor[col] = value;
            Vector temp_v = new Vector(9);
         for(int i=0;i<9;i++)
            temp_v.add(TMInfor[i]);
            content.setElementAt(temp_v,row);
        	fireTableCellUpdated(row, col);
        }
    
        public void mySetValueAt(Object value, int row, int col) {
//((Vector)content.elementAt(row)).elementAt(col) = value;
        }
    
  }

⌨️ 快捷键说明

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