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

📄 stuinfo.java

📁 用JAVA+SQL编写的一个教学管理软件
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

public class Stuinfo extends JFrame{
	private String status,name;
	private int id;
	private JLabel lbl_no,lbl_name,lbl_sex,lbl_age,lbl_class,lbl_state,lbl_dep;
	private JButton btn_query,btn_back,btn_add,btn_update,btn_del,btn_clear;
	private JTextField txt_no,txt_name,txt_sex,txt_age,txt_class,txt_state,txt_dep;
	private JPanel panel;
	private String ErrorMessage;
	private boolean isAdd=false;

	public Stuinfo(String status,String name,int id){
		super("学生信息管理系统");
		this.id=id;
		this.status=status;
		this.name=name;
		lbl_no=new JLabel("学号");
		lbl_name=new JLabel("姓名");
		lbl_sex=new JLabel("性别");
		lbl_age=new JLabel("年龄");
		lbl_class=new JLabel("班级");
		lbl_state=new JLabel("籍贯");
		lbl_dep=new JLabel("学院");
		
		btn_query=new JButton("查询");
		btn_back=new JButton("返回");
		btn_add=new JButton("添加");
		btn_update=new JButton("更新");
		btn_del=new JButton("删除");
		btn_clear=new JButton("清空");
		
		txt_no=new JTextField();
		txt_name=new JTextField();
		txt_sex=new JTextField();
		txt_age=new JTextField();
		txt_class=new JTextField();
		txt_state=new JTextField();
		txt_dep=new JTextField();
		
		panel=new JPanel();
		panel.setLayout(new GridLayout(5,4,10,10));
		panel.add(lbl_no);
		panel.add(txt_no);
		panel.add(btn_query);
		panel.add(btn_back);
		panel.add(lbl_name);
		panel.add(txt_name);
		panel.add(lbl_sex);
		panel.add(txt_sex);
		panel.add(lbl_age);
		panel.add(txt_age);
		panel.add(lbl_class);
		panel.add(txt_class);
		panel.add(lbl_state);
		panel.add(txt_state);
		panel.add(lbl_dep);
		panel.add(txt_dep);
		panel.add(btn_add);
		panel.add(btn_update);
		panel.add(btn_del);
		panel.add(btn_clear);
		panel.setBorder(BorderFactory.createEmptyBorder(20,20,15,20));
		getContentPane().add(panel);
		txt_name.enable(false);
		txt_sex.enable(false);
		txt_age.enable(false);
		txt_class.enable(false);
		txt_state.enable(false);
		txt_dep.enable(false);
		btn_update.hide();
		btn_del.hide();
		setLocation(400,250);
		setResizable(false);
		//窗口监听
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				dispose();
				System.exit(0);
			}
		});	
		pack();
		setVisible(true);
		
		btn_query.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					if(txt_no.getText().equals("")){
						JOptionPane.showMessageDialog(txt_class,"请输入您要查找的学生的学号","错误",1);
					}
					else{
						Connection conn=null;
						DateSource date=new DateSource();
						conn=date.getconnection();
						String sql="SELECT * FROM students WHERE id=?";
						PreparedStatement stmt=conn.prepareStatement(sql);
						stmt.setInt(1,Integer.parseInt(txt_no.getText()));	
						ResultSet rs=stmt.executeQuery();
						if(rs.next()){
							txt_no.enable(false);
							btn_query.hide();
							txt_name.setText(rs.getString(3));
							txt_name.enable(true);
							txt_sex.setText(rs.getString(4));
							txt_sex.enable(true);
							txt_age.setText(rs.getString(5));
							txt_age.enable(true);
							txt_class.setText(rs.getString(6));
							txt_class.enable(true);
							txt_state.setText(rs.getString(7));
							txt_state.enable(true);
							txt_dep.setText(rs.getString(8));
							txt_dep.enable(true);
							btn_add.hide();
							btn_update.show();
							btn_del.show();
							repaint();					
						}
						else{   txt_no.setText("");
								repaint();
								JOptionPane.showMessageDialog(txt_class,"没有找到您所查找的学生","提示",1);
						}
						rs.close();
						conn.close();
					
					}
					
					
				}catch(NumberFormatException NFE){
					JOptionPane.showMessageDialog(txt_class,"请正确地输入学生学号","警告",1);
					txt_no.setText("");
				}catch(Exception exc){
					JOptionPane.showMessageDialog(txt_class,"系统错误,请重试","错误",1);
				}
			}
									
		});
		
		btn_update.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					if(!checkView()){
							JOptionPane.showMessageDialog(txt_age,ErrorMessage,"错误",1);
						}
					else {
						Connection conn=null;
				    	DateSource date=new DateSource();
				    	conn=date.getconnection();
				    	String sql="SELECT * FROM students WHERE id=?";
				    	PreparedStatement stmt=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                        		ResultSet.CONCUR_UPDATABLE);
                        stmt.setInt(1,Integer.parseInt(txt_no.getText()));
                        ResultSet rs=stmt.executeQuery();
                        if(rs.next()){
                        	rs.updateString(3,txt_name.getText());
							rs.updateString(4,txt_sex.getText());
							rs.updateInt(5,Integer.parseInt(txt_age.getText()));
							rs.updateInt(6,Integer.parseInt(txt_class.getText()));
							rs.updateString(7,txt_state.getText());
							rs.updateString(8,txt_dep.getText());
							rs.updateRow();
							JOptionPane.showMessageDialog(txt_class,"更新成功","提示",1);
                        }
				    	
				    	rs.close();
				    	conn.close();
				    	btn_clear.doClick();
				    	
					}
					
				}catch(NumberFormatException NFE){
					JOptionPane.showMessageDialog(txt_class,"请正确地输入年龄和班级","警告",1);
				}catch(Exception exc){
					JOptionPane.showMessageDialog(txt_class,"系统错误,请重试","错误",1);
				}
			}
			
		});
		
		btn_del.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					Connection conn=null;
				    DateSource date=new DateSource();
				    conn=date.getconnection();
				    String sql="SELECT * FROM students WHERE id=?";
				    PreparedStatement stmt=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                       		ResultSet.CONCUR_UPDATABLE);
                    stmt.setInt(1,Integer.parseInt(txt_no.getText()));
                    ResultSet rs=stmt.executeQuery();
					if(rs.next()){
						rs.deleteRow();
						JOptionPane.showMessageDialog(txt_class,"删除成功","提示",1);
					}
					rs.close();
					conn.close();
					btn_clear.doClick();
					
				}catch(Exception exc){
					JOptionPane.showMessageDialog(txt_class,"系统错误,请重试","错误",1);
				}
			}		

		});
		
		
		
		
		
		btn_add.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				boolean canAdd=true;
				if(isAdd){
					try{
						if(!checkView()){
							JOptionPane.showMessageDialog(txt_age,ErrorMessage,"错误",1);
						}
						
						else{
							Connection conn=null;
				    		DateSource date=new DateSource();
				    		conn=date.getconnection();
							Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
                            String sql="SELECT * FROM students";
                            ResultSet rs=stmt.executeQuery(sql);
                            while(rs.next()){
                            	if(Integer.parseInt(txt_no.getText())==rs.getInt(1)){
                            		canAdd=false;
                            		JOptionPane.showMessageDialog(txt_class,"此学号已存在,请重新输入","错误",1);
                            		txt_no.setText("");
                            		rs.close();
                            		conn.close();
                            	}
                            	if(!canAdd)break;
                            }
                        
                        	if(canAdd){
                        		rs.updateInt(1,Integer.parseInt(txt_no.getText()));
                        		rs.updateString(2,"8888");
	                            rs.updateString(3,txt_name.getText());
								rs.updateString(4,txt_sex.getText());
								rs.updateInt(5,Integer.parseInt(txt_age.getText()));
								rs.updateInt(6,Integer.parseInt(txt_class.getText()));
								rs.updateString(7,txt_state.getText());
								rs.updateString(8,txt_dep.getText());
								rs.insertRow();
								rs.close();
								conn.close();
								txtClear();
								txt_no.enable(true);
								btn_query.show();
								btn_add.setLabel("添加");
								txt_name.enable(false);
								txt_sex.enable(false);
								txt_age.enable(false);
								txt_class.enable(false);
								txt_state.enable(false);
								txt_dep.enable(false);
								repaint();
								JOptionPane.showMessageDialog(txt_class,"添加成功","提示",1);
								isAdd=false;
                	        }    
                            
						}
						
					}catch(NumberFormatException NFE){
						JOptionPane.showMessageDialog(txt_class,"请正确地输入学号、年龄和班级","警告",1);
					}catch(Exception exc){
						JOptionPane.showMessageDialog(txt_class,"系统错误,请重试","错误",1);
					}
				}	
					
				else if(!isAdd){
					isAdd=true;
					txt_no.setText("");
					txt_no.enable(true);
					btn_query.hide();
					btn_add.setLabel("保存");
					txt_name.enable(true);
					txt_sex.enable(true);
					txt_age.enable(true);
					txt_class.enable(true);
					txt_state.enable(true);
					txt_dep.enable(true);
					repaint();
				}						
			}						
		});	
		
		btn_clear.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				txtClear();
				txt_no.enable(true);
				btn_query.show();
				txt_name.enable(false);
				txt_sex.enable(false);
				txt_age.enable(false);
				txt_class.enable(false);
				txt_state.enable(false);
				txt_dep.enable(false);
				btn_update.hide();
				btn_del.hide();
				btn_add.setLabel("添加");
				btn_add.show();
				isAdd=false;
				repaint();
			}
		});
		
		btn_back.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dispose();
				returnMenu();
			}	
		});
		
		
		
	}	
	
	
	private boolean checkView(){
		boolean flag=true;
		ErrorMessage="";
		if(txt_name.getText().equals("")){
			flag=false;
			ErrorMessage="姓名不能为空";
		}
		if(txt_sex.getText().equals("")){
			flag=false;
			ErrorMessage=ErrorMessage+"\n"+"性别不能为空";
	    }
	    else{
	    	if(!(txt_sex.getText().equals("男")||txt_sex.getText().equals("女"))){
				flag=false;
				ErrorMessage=ErrorMessage+"\n"+"性别为'男'或者'女'";
			}	
		}
	    if(txt_age.getText().equals("")){
		    flag=false;
		    ErrorMessage=ErrorMessage+"\n"+"年龄不能为空";
		}
		if(txt_class.getText().equals("")){
		    flag=false;
		    ErrorMessage=ErrorMessage+"\n"+"班级不能为空";
		}
		if(txt_state.getText().equals("")){
		    flag=false;
		    ErrorMessage=ErrorMessage+"\n"+"籍贯不能为空";
		}
		if(txt_dep.getText().equals("")){
		    flag=false;
		    ErrorMessage=ErrorMessage+"\n"+"学院不能为空";
		}
		
		if(flag==false){
			return false;
		}
		else
		return true;
	}
		
	private void returnMenu(){
		Cmenu user=new Cmenu(status,name,id);
	}
			
	private void txtClear(){
		txt_no.setText("");
		txt_name.setText("");
		txt_sex.setText("");
		txt_age.setText("");
		txt_class.setText("");
		txt_state.setText("");
		txt_dep.setText("");
						
	}
		
	
	
}

⌨️ 快捷键说明

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