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

📄 datastatistical.java

📁 用java刚刚写了不久的学生管理系统
💻 JAVA
字号:
//作者:沈阳
//时间:2008年11月11日
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
class DataStatistical extends JFrame implements ActionListener {
	JComboBox jcbType = new JComboBox();		//统计类型组合框
	JComboBox jcbSpeciality = new JComboBox();		//专业统计组合框
	JComboBox jcbTeacherNumber = new JComboBox();		//教师编号统计组合框
	JLabel jlabel1= new JLabel(" 选择统计类型");
	JLabel jlabel2= new JLabel("选择统计专业");
	JLabel jlabel3 = new JLabel("选择教师编号");
	JButton jbAscertain = new JButton("统  计");
	JButton jbExit = new JButton("退  出");
	String selectedItem1;
	String selectedItem2;
	int userPriority;
	boolean flagShow = true;
	boolean flagSQL1 = true;
 	boolean flagSQL2 = true;
 	boolean choice = false;
	DataStatistical(int priority){
		userPriority = priority;
		Container container = this.getContentPane();
		container.setLayout(new BorderLayout());
		JPanel jpTop = new JPanel();
		jpTop.setLayout(new GridLayout(2,1));
		JPanel jpTop1 = new JPanel();
		JPanel jpTop2 = new JPanel();
 		jpTop2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
		jpTop2.add(jlabel1);
		jpTop2.add(jcbType);
		jcbType.addItem("按相同专业统计");
		jcbType.addItem("按教师编号统计");
 		jpTop.add(jpTop1);
		jpTop.add(jpTop2);
		JPanel jpBottom = new JPanel();
		jpBottom.setLayout(new GridLayout(2,1));
		JPanel jpBottom1 = new JPanel();
		JPanel jpBottom2 = new JPanel();
		jpBottom1 = new JPanel(new FlowLayout(FlowLayout.CENTER,40,10));
		jpBottom1.add(jbAscertain);
		jpBottom1.add(jbExit);
		jpBottom.add(jpBottom1);
		jpBottom.add(jpBottom2);
		jcbSpeciality.addActionListener(this);
 	    jcbTeacherNumber.addActionListener(this);
		jcbType.addActionListener(this);
		jbAscertain.addActionListener(this);
		jbExit.addActionListener(this);
		container.add("North",jpTop);
		container.add("South",jpBottom);
		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
		setLocation((screen.width - 360) / 2,(screen.height - 500) / 2);
		setTitle("学生人数统计");
 		setResizable(false);
		setSize(350,390);
		setVisible(true);
	}//DataStatistical
	//--------------------------------actionPerformed-------------------------------------------
	public void actionPerformed(ActionEvent e){
		Statement stm = null;
    	ResultSet rs = null;
 		Container container = this.getContentPane();
		JPanel jpCenter = new JPanel();		//中部容器
		jpCenter.setLayout(new GridLayout(5,1));	//将中部容器分成两行一列
 		JPanel jpCenterTop = new JPanel();	//取得中部容器的上面一列
		jpCenterTop = new JPanel(new FlowLayout(FlowLayout.LEFT));
 		JPanel jpCenterBottom = new JPanel();//取得中部容器的下面一列
 		jpCenterBottom = new JPanel(new FlowLayout(FlowLayout.LEFT));
 		JTextField txtStaticNumber = new JTextField(9);
 		txtStaticNumber.setEditable(false);
 		String [] speciality = new String[20];
		String [] teacherNumber = new String[20]; 		
		String Temp;
		int countSpeciality = 0;
		int countTeacherNumber = 0;
		if(e.getSource() == jcbType){	
			ConnectServer.mainLink();		//建立和数据库的连接。
			System.out.println("---------------------------"+flagSQL1);
			if(jcbType.getSelectedItem().equals("按相同专业统计")){
				if(flagSQL1){
					try{
    					stm = ConnectServer.con.createStatement
    					(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    					rs = stm.executeQuery("SELECT distinct speciality FROM student");
    					while(rs.next()){
     				 		Temp = rs.getString("speciality");
     				 		speciality[countSpeciality] = Temp;
     				 		countSpeciality++;
     					}
     					stm.close();				//关闭数据库连接
     		   			ConnectServer.close();	
     				}
     				catch(Exception ee){
    					JOptionPane.showMessageDialog(null,"数据库操作失败!");	
    					System.exit(0);
	  				}
	  				flagSQL1= false;
				}
	  			for(int i = 0;i < countSpeciality;i++){
	  	 			jcbSpeciality.addItem(speciality[i]);
	  			}
			 	jpCenterTop.add(new JLabel(" 选择统计专业"));
				jpCenterTop.add(jcbSpeciality);
			}	
			if(jcbType.getSelectedItem().equals("按教师编号统计")){
				if(flagSQL2){
					try{
    					stm = ConnectServer.con.createStatement
    					(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    					rs = stm.executeQuery("SELECT distinct master_number FROM master");
    					while(rs.next()){
     				 		Temp = rs.getString("master_number");
     				 		teacherNumber[countTeacherNumber] = Temp;
     				 		countTeacherNumber++;
     					}
     					stm.close();				//关闭数据库连接
     		   			ConnectServer.close();	
     				}
     				catch(Exception ee){
    					JOptionPane.showMessageDialog(null,"数据库操作失败!");	
    					System.exit(0);
	  				}
	  				flagSQL2 = false;
				}
	  			for(int i = 0;i < countTeacherNumber;i++){
	  	 			jcbTeacherNumber.addItem(teacherNumber[i]);	
	  			}
				jpCenterTop.add(new JLabel(" 选择教师编号"));
				jpCenterTop.add(jcbTeacherNumber);
			}
			if(flagShow == false){
 		 		container.remove(2);
			}
			else{
				flagShow = false;	
			}	
			jpCenter.add(jpCenterTop);	
	  		container.add(jpCenter);
	  		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
			setLocation((screen.width - 360) / 2,(screen.height - 500) / 2);
			setTitle("学生人数统计");
 			setResizable(false);
			setSize(350,390);
			setVisible(true);
		}
		else if(e.getSource() == jcbSpeciality){
			selectedItem1 = (String)jcbSpeciality.getSelectedItem();
			selectedItem2 = null;
			choice = true;
		}
		else if(e.getSource() == jcbTeacherNumber){
			selectedItem2 = (String)jcbTeacherNumber.getSelectedItem();
			selectedItem1= null;
			choice = false;
		}
		else if(e.getSource() == jbAscertain){
			JPanel jp1 = new JPanel();
		 	JPanel jp2 = new JPanel();
		 	JPanel jp3 = new JPanel();
			jp1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
			container.remove(2);
			System.out.println("choice="+choice);
			if(choice == true){
				jp1.add(new JLabel(" 选择统计专业"));
				jp1.add(jcbSpeciality);
			}
			else if(choice == false){
				jp1.add(new JLabel(" 选择教师编号"));
				jp1.add(jcbTeacherNumber);
			}
			jpCenter.add(jp1);
	 		jpCenter.add(jp2);
	 		jpCenter.add(jp3);
    		int recordCount = 0;
			ConnectServer.mainLink();		//建立和数据库的连接。
			String sql;
			if(selectedItem1 != null){
				try{
    				stm = ConnectServer.con.createStatement
    				(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    				sql = "SELECT * FROM student WHERE speciality = '"+selectedItem1+"'";
    				rs = stm.executeQuery(sql);
    				while(rs.next()){		//统计记录数
     				 	recordCount++;
     				}
    				stm.close();				//关闭数据库连接
     				ConnectServer.close();		
    			}
    			catch(SQLException ee){
    				JOptionPane.showMessageDialog(null,"数据库操作失败!");	
    				System.exit(0);
	  			}	
	  			jpCenterBottom.add(new JLabel("该专业学生人数为"));
	  			jpCenterBottom.add(txtStaticNumber);
	  			txtStaticNumber.setText(""+recordCount);
	  			System.out.println("该专业学生人数为="+recordCount);
	  			System.out.println("recordCount="+recordCount);
	  	 		jpCenter.add(jpCenterBottom);
	  	 		container.add(jpCenter);
			}//if
			else if(selectedItem2 != null){
				try{
    				stm = ConnectServer.con.createStatement
    				(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    				sql = "SELECT * FROM address WHERE address.master_number = '"+selectedItem2+"'";
    				rs = stm.executeQuery(sql);
    				while(rs.next()){		//统计记录数
     			 	 	recordCount++;
     				}
    				stm.close();				//关闭数据库连接
     				ConnectServer.close();	
    			}
    			catch(SQLException ee){
    				JOptionPane.showMessageDialog(null,"数据库操作失败!");	
    				System.exit(0);
	  			}	
	  	 		jpCenterBottom.add(new JLabel("该班主任的学生人数为"));
	  			jpCenterBottom.add(txtStaticNumber);
	  		 	txtStaticNumber.setText(""+recordCount);	
	  		 	System.out.println("该班主任的学生人数为="+recordCount);
	  			System.out.println("recordCount="+recordCount);
	  			jpCenter.add(jpCenterBottom);
	  			container.add(jpCenter);
			}//else if		
			Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
			setLocation((screen.width - 360) / 2,(screen.height - 500) / 2);
			setTitle("学生人数统计");
 			setResizable(false);
			setSize(350,390);
			setVisible(true);
		}
		else if(e.getSource() == jbExit){
		 	dispose();
	 	 	new MainWindow(userPriority);	
		}
	}//actionPerformed
}

⌨️ 快捷键说明

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