📄 stuinfo.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 + -