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

📄 certainclassframe.java

📁 学生成绩管理系统
💻 JAVA
字号:
import javax.swing.*;

import java.sql.*;
import java.util.Vector;
import java.awt.*;
import java.awt.event.*;

import javax.swing.tree.*;
public class CertainClassFrame extends JFrame {
	
	public CertainClassFrame(Connection connect){
		
		setTitle("CertainClassFrame");
		jl_class=new JLabel("select a class");
		jl_term=new JLabel("select a term");
		jl_course=new JLabel("select a course");
		jl_ave=new JLabel("average:");
		jl_pass=new JLabel("pass rate");
		
		
		
		con=connect;
		
		
		getValues();
		
		JPanel jp1=new JPanel(new GridLayout(2,2));
		jp1.add(jl_class);jp1.add(aclass);
		jp1.add(jl_term);jp1.add(aterm);
		
		
		jp2=new JPanel();
		
		jtable=new JTable();
		
		jp2.add(jtable);
		
		
	
	
		
		
		Container c=getContentPane();
		c.setLayout(new BorderLayout());
		c.add(jp1,BorderLayout.NORTH);
		c.add(jp2,BorderLayout.CENTER);
		
		////////添加事件响应
		aterm.addActionListener(new ComboBoxListener());
		
		//aclass.addActionListener(new ComboBoxListener());
		
		
	}
	void getValues(){
		try{
			
		Statement st=con.createStatement();
		String sql="select * from class";
		ResultSet rs=st.executeQuery(sql);
		Vector vc=new Vector();
		while(rs.next()){
			vc.addElement(rs.getString(1));
		}
		aclass=new JComboBox(vc);
		rs.close();
		st.close();
		
		Statement stm=con.createStatement();
		sql="select distinct term from score";
		rs=stm.executeQuery(sql);
		vc=new Vector();
		while(rs.next()){
			vc.addElement(rs.getString(1));
		}
		aterm=new JComboBox(vc);
		rs.close();
		stm.close();
		
		vc=new Vector();
		vc.addElement("eng");vc.addElement("math");vc.addElement("db");vc.addElement("java");
		
		
		
		
		
	   }catch(SQLException e1){
		   JOptionPane.showMessageDialog(null, e1.getMessage());
	   }
		
		
		
	}
	////////////////////COMBOBOX 事件监听
	
	 class ComboBoxListener implements ActionListener{

   		public void actionPerformed(ActionEvent e) {
   			
   			
   			try{
   				String sql="select student.sno,sname,class.cno,cname,eng,math,db,java,term from student,score,class where class.cno=student.cno and student.sno=score.sno and class.cno= ? and term=?";
   				
   				PreparedStatement pre=con.prepareStatement(sql);
   				pre.setString(1, aclass.getSelectedItem().toString());
   				pre.setInt(2, Integer.parseInt(aterm.getSelectedItem().toString()));
   				//JOptionPane.showMessageDialog(null,aterm.getSelectedItem().toString() );
   				rs=pre.executeQuery();
   				showToTable(rs);
   				CertainClassFrame.this.validate();
   				jtable.validate();
   				rs.close();
   				pre.close();
   				
   				
   			}catch(SQLException e1){
  			   JOptionPane.showMessageDialog(null, e1.getMessage());
  		      }
   			
   			
   	  }
////////////////////////////将数据显示到表格中
   		void showToTable(ResultSet result){
   			
   			
   			try{
   				boolean more=result.next();
   				if(!more){
   					JOptionPane.showMessageDialog(null,"no data found");
   					
   					
   				}
   				
   				Vector columname=new Vector();
   				Vector rows=new Vector();
   				
   				
   				
   				
   				ResultSetMetaData rsmd=result.getMetaData();
   				for(int i=1;i<=rsmd.getColumnCount();i++)
   					columname.addElement(rsmd.getColumnName(i));
   				do{
   					rows.addElement(getNextRow( result,rsmd));
   				   }while(result.next());
   				
   				
   				jtable=new JTable(rows,columname);
   				JScrollPane js=new JScrollPane(jtable);
   				CertainClassFrame.this.getContentPane().remove(jp2);
   				jp2=new JPanel();
   				jp2.add(js);
   				CertainClassFrame.this.getContentPane().add(jp2,BorderLayout.CENTER);
   				jtable.validate();
   				
   			}catch(SQLException e1){
   				JOptionPane.showMessageDialog(null,e1.getMessage());
   			  }
   			
   		}
   		private Vector getNextRow(ResultSet rs,ResultSetMetaData rsmd){
   			
   			Vector vc=new Vector();
   			try{
   				
   				for(int i=1;i<=rsmd.getColumnCount();i++){
   				   vc.addElement(rs.getString(i));
   				}
   			}catch(SQLException e1){
   				JOptionPane.showMessageDialog(null,e1.getMessage());
   			  }
   			return vc;
   		}
       	  
  }

	//////////////////////////////////////////////////////
	JComboBox aclass;
	JComboBox aterm;
	JLabel jl_class,jl_term,jl_course,jl_ave,jl_pass;
	
	Connection con;
	JTable jtable;
	ResultSet rs;
	JScrollPane js;
	JPanel jp2;
}

⌨️ 快捷键说明

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