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

📄 studentpanel.java

📁 由java编写的学生选课管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import java.awt.*;


public class StudentPanel extends JPanel
{
	public StudentPanel(int selected)
	{
		this.selected = selected;
		if(selected == 0)                           //修改密码界面
	  {
	    JLabel label1 = new JLabel("请输入当前的密码:", JLabel.CENTER);
	    oldPasswordField = new JPasswordField(20);
	    Box hbox1 = Box.createHorizontalBox();
	    hbox1.add(label1);
	    hbox1.add(Box.createHorizontalStrut(10));
	    hbox1.add(oldPasswordField);
	    
	    JLabel label2 = new JLabel("请输入一个新密码:");
	    newPasswordField = new JPasswordField(20);
	    Box hbox2 = Box.createHorizontalBox();
	    hbox2.add(label2);
	    hbox2.add(Box.createHorizontalStrut(10));
	    hbox2.add(newPasswordField);
	    
	    JLabel label3 = new JLabel("请再次输入新密码:");
	    againPasswordField = new JPasswordField(20);
	    Box hbox3 = Box.createHorizontalBox();
	    hbox3.add(label3);
	    hbox3.add(Box.createHorizontalStrut(10));
	    hbox3.add(againPasswordField);
	    
	    changeButton = new JButton("修改");
	    changeButton.addActionListener(new StudentPanelAction());
	    resetButton = new JButton("重置");
	    resetButton.addActionListener(new StudentPanelAction());
	    Box hbox4 = Box.createHorizontalBox();
	    hbox4.add(changeButton);
	    hbox4.add(Box.createHorizontalStrut(50));
	    hbox4.add(resetButton);
	    
	    Box vbox = Box.createVerticalBox();
	    vbox.add(Box.createVerticalStrut(30));
	    vbox.add(hbox1);
	    vbox.add(Box.createVerticalStrut(20));
	    vbox.add(hbox2);
	    vbox.add(Box.createVerticalStrut(20));
	    vbox.add(hbox3);
	    vbox.add(Box.createVerticalStrut(40));
	    vbox.add(hbox4);
	    
	    add(vbox);
	    
	    
	    
		}
		
		//课程修读界面  课程修读界面  课程修读界面  课程修读界面  
		if(selected == 1)
		{ 
			
			setLayout(new BorderLayout());
			
			JLabel myLabel = new JLabel("已选课程查询",JLabel.CENTER);
      myLabel.setFont(new Font("TimesRoman",Font.BOLD,20));
      myLabel.setForeground(Color.RED);
      
      add(myLabel, BorderLayout.NORTH); 
            
      query =new String("SELECT 成绩表.课程号,课程名,学时,学分,学期,教师 FROM 课程信息表,成绩表 WHERE 课程信息表.课程号=成绩表.课程号");
      query = query+" AND 学号='" + LoginFrame.myTextField.getText()+"'";
      getTable(query);    // 调用私有方法
      

      
		}
		
		//选课申请界面  选课申请界面  选课申请界面
		if(selected == 2)
		{
			setLayout(new BorderLayout());
			
			JLabel myLabel = new JLabel("请输入课程号");
			courseNumTextField = new JTextField(10);
			queryButton = new JButton("申请");
			queryButton.addActionListener(new StudentPanelAction());
			queryButton.setPreferredSize(new Dimension(80, 20));
			
			JPanel buttonPanel = new JPanel();
			buttonPanel.add(myLabel);
			buttonPanel.add(courseNumTextField);
			buttonPanel.add(queryButton);
			
			
			add(buttonPanel, BorderLayout.NORTH);
			
			//构建课表
			query =new String("SELECT * FROM 课程信息表");
		  JTable commoditytable = new JTable();
		  JScrollPane commodityscroller = new JScrollPane( commoditytable ); 
      commodityscroller.setPreferredSize(new Dimension(100, 50));
		
 		  add(commodityscroller);
      getTable(query); 
      
     
			
			
		}
		
		//成绩查询界面  成绩查询界面  成绩查询界面  成绩查询界面  
		if(selected == 3)
		{
			setLayout(new BorderLayout());
			
			JLabel myLabel = new JLabel("成绩查询",JLabel.CENTER);
      myLabel.setFont(new Font("TimesRoman",Font.BOLD,20));
      myLabel.setForeground(Color.RED);
      
      add(myLabel, BorderLayout.NORTH); 
            
      query =new String("SELECT 成绩表.课程号,课程名,教师,分数 FROM 课程信息表,成绩表 WHERE 课程信息表.课程号=成绩表.课程号");
      query = query+" AND 学号='" + LoginFrame.myTextField.getText()+"'";
      getTable(query);
		}
		
		
		//个人信息修改界面  个人信息修改界面  个人信息修改界面
		if(selected == 4)
		{
			
			JLabel label1 = new JLabel("学生个人基本信息",JLabel.CENTER);
      label1.setFont(new Font("TimesRoman",Font.BOLD,20));
      label1.setForeground(Color.RED);
      Box hbox1 = Box.createHorizontalBox();
      hbox1.add(label1);
      
      nameField = new JTextField(15);
      nameField.setEditable(false);
      Box hbox2 = Box.createHorizontalBox();
      hbox2.add(new JLabel("姓名:"));
      hbox2.add(nameField);
      
      sexField = new JTextField(15);
      Box hbox3 = Box.createHorizontalBox();
      hbox3.add(new JLabel("性别:"));
      hbox3.add(sexField);
      
      majorField = new JTextField(15);
      Box hbox4 = Box.createHorizontalBox();
      hbox4.add(new JLabel("专业:"));
      hbox4.add(majorField);
      
      birthField = new JTextField(15);
      Box hbox5 = Box.createHorizontalBox();
      hbox5.add(new JLabel("出生:"));
      hbox5.add(birthField);
      
      heightField = new JTextField(15);
      Box hbox6 = Box.createHorizontalBox();
      hbox6.add(new JLabel("身高:"));
      hbox6.add(heightField);
      
      searchButton = new JButton("查询");
      searchButton.addActionListener(new StudentPanelAction());
      
      
      changeButton = new JButton("修改");
      changeButton.addActionListener(new StudentPanelAction());
      
      resetButton = new JButton("重置");
      resetButton.addActionListener(new StudentPanelAction());
      
      Box hbox7 = Box.createHorizontalBox();
      hbox7.add(searchButton);
      hbox7.add(Box.createHorizontalStrut(25));
      hbox7.add(changeButton);
      hbox7.add(Box.createHorizontalStrut(25));
      hbox7.add(resetButton);
      
      Box vbox = Box.createVerticalBox();
      vbox.add(hbox1);
      vbox.add(Box.createVerticalStrut(20));
      vbox.add(hbox2);
      vbox.add(Box.createVerticalStrut(5));             
      vbox.add(hbox3);
      vbox.add(Box.createVerticalStrut(5));  
      vbox.add(hbox4);
      vbox.add(Box.createVerticalStrut(5));  
      vbox.add(hbox5);
      vbox.add(Box.createVerticalStrut(5));  
      vbox.add(hbox6);
      vbox.add(Box.createVerticalStrut(20));
      vbox.add(hbox7);
      
      add(vbox);
      
		}
		
		
		
	}
	
	//课程修读界面所用的方法
	//课程修读界面的方法
  /*----------------------------getTable-------------------------------*/    
  private void getTable(String commodityquery) 
  { 
       
    //加载驱动程序以连接数据库
        try 
        { 
        	Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); 
        	con = DriverManager.getConnection( url, username, password ); 
      	} 
      	//捕获加载驱动程序异常
      	catch ( ClassNotFoundException cnfex ) 
      	{ 
        	System.err.println("装载 JDBC/ODBC 驱动程序失败。" ); 
        	cnfex.printStackTrace(); 
        	JOptionPane.showMessageDialog (StudentPanel.this, cnfex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
         	System.exit( 1 );  // terminate program 
      	} 
      	//捕获连接数据库异常
      	catch ( SQLException sqlex ) 
      	{ 
         	System.err.println( "无法连接数据库" ); 
         	sqlex.printStackTrace(); 
         	JOptionPane.showMessageDialog (StudentPanel.this, sqlex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
         	System.exit( 1 );  // terminate program 
      	}
      try 
      { 
      	 //执行SQL语句
         stmt = con.createStatement(); 
         ResultSet queryresultSet = stmt.executeQuery( commodityquery );       
         //在表格中显示查询结果
         displayResultSet( queryresultSet);     //调用另一个方法
      } 
      catch ( SQLException sqlex ) 
      { 
         sqlex.printStackTrace(); 
         JOptionPane.showMessageDialog (StudentPanel.this, sqlex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
      } 
   }  	
   /*---------------------------displayResultSet--------------------------------*/   
   private void displayResultSet( ResultSet commodityrs ) throws SQLException 
   { 
      //定位到达第一条记录
     
      boolean commoditymoreRecords = commodityrs.next();
      //如果没有记录,则提示一条消息
      
      if ( ! commoditymoreRecords ) 
      { 
         JOptionPane.showMessageDialog(StudentPanel.this, "无此记录" ); 
         //setTitle( "无记录显示" ); 
      	 return ;
      } 
     
      Vector commoditycolumnHeads = new Vector(); 
      Vector commodityrows = new Vector(); 
      try
      {
      	 
         //获取字段的名称
         ResultSetMetaData rsmd = commodityrs.getMetaData(); 
         for(int i = 1; i <= rsmd.getColumnCount(); i++)
         { 
            commoditycolumnHeads.addElement( rsmd.getColumnName( i ) ); 
         }
          //获取记录集
         do 
         { 
            commodityrows.addElement(getNextRow( commodityrs, rsmd ) ); 
         } 
         while ( commodityrs.next() ); 
         
         ResultSetMetaData commodityrsmd = commodityrs.getMetaData();      //why???????
        
         
         //在表格中显示查询结果
         JTable commoditytable = new JTable( commodityrows, commoditycolumnHeads ); 
         
         JScrollPane scroller = new JScrollPane( commoditytable ); 
         scroller.setSize(800, 20);
          
        // Container c = new Container(); 
        // c.remove(1); 
     	   JPanel tablePanel = new JPanel();
     	   tablePanel.setLayout( new BorderLayout() );
         tablePanel.add( scroller, BorderLayout.CENTER ); 
       
         add(tablePanel,BorderLayout.CENTER);
         //刷新Table
         validate(); 
      } 
      catch ( SQLException sqlex )
	  { 
         JOptionPane.showMessageDialog (StudentPanel.this ,sqlex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
      } 
   } 
   /*-----------------------------getNextRow---------------------------------*/
   private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd )throws SQLException
   {
      Vector currentRow = new Vector();
      for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
      switch( rsmd.getColumnType( i ) ) //判断数据类型
      {
         case Types.CHAR:
         case Types.VARCHAR:
         case Types.LONGVARCHAR: currentRow.addElement( rs.getString( i ) );
                                 break;
         case Types.DECIMAL:     currentRow.addElement( rs.getBigDecimal( i ) );
                                 break;  
         case Types.DATE:        currentRow.addElement( rs.getDate( i ) );
                                 break;                                                 
         case Types.SMALLINT:    
         case Types.INTEGER:     currentRow.addElement(new Integer( rs.getInt( i ) ) );
                                 break;

⌨️ 快捷键说明

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