java学生管理系统界面设计

关于学生管理系统的界面设计:代码如下:
数据库设计

DROP TABLE IF EXISTS `stu`;
CREATE TABLE `stu` (
  `stuId` int(11) NOT NULL AUTO_INCREMENT,
  `stuName` varchar(30) DEFAULT NULL,
  `stuSex` varchar(30) DEFAULT NULL,
  `stuAge` int(11) DEFAULT NULL,
  `stuJg` varchar(30) DEFAULT NULL,
  `stuDept` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`stuId`)
) ENGINE=MyISAM AUTO_INCREMENT=10002 DEFAULT CHARSET=utf8;

添加学生信息界面

/**
 * @author 逸軒
 * https://www.jianshu.com/u/1b1f7b0b32d6
 */
import java.awt.BorderLayout;  
import java.awt.Dialog;  
import java.awt.Frame;  
import java.awt.GridLayout;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
  
import javax.swing.*;  
  
public class StuAddDialog extends JDialog implements ActionListener{  
    //=========面板控件  
    //......左侧标题栏  
    private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab;  
    //......右侧信息选择填写栏  
    private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt;  
    //......添加和取消按钮  
    private JButton addBtn,cancelBtn;  
    //......布局控件  
    private JPanel left,center,bottom;  
      
    //构造函数  
    public StuAddDialog(Frame owner, String title, boolean modal)   
    {  
        //========重写父类方法  
        super(owner, title, modal);  
        //========左侧标签栏  
        idLab = new JLabel("学号: ");  
        nameLab = new JLabel("姓名: ");  
        sexLab = new JLabel("性别: ");  
        ageLab = new JLabel("年龄: ");  
        jgLab = new JLabel("籍贯: ");  
        deptLab = new JLabel("系别: ");  
        //========右侧信息填写栏  
        idTxt = new JTextField();  
        nameTxt = new JTextField();  
        sexTxt = new JTextField();  
        ageTxt = new JTextField();  
        jgTxt = new JTextField();  
        deptTxt = new JTextField();  
        //========添加和取消按钮  
        addBtn = new JButton("添加");  
        cancelBtn = new JButton("取消");  
        //......添加监听  
        addBtn.addActionListener(this);  
        addBtn.setActionCommand("add");  
        cancelBtn.addActionListener(this);  
        cancelBtn.setActionCommand("cancel");  
        //========创建布局  
        //......创建左边栏  
        left = new JPanel();  
        left.setLayout(new GridLayout(6, 1));  
        left.add(idLab);  left.add(nameLab);   
        left.add(sexLab); left.add(ageLab);   
        left.add(jgLab);  left.add(deptLab);   
        //......创建右边栏  
        center = new JPanel();  
        center.setLayout(new GridLayout(6, 1));  
        center.add(idTxt);  center.add(nameTxt);  
        center.add(sexTxt); center.add(ageTxt);  
        center.add(jgTxt);  center.add(deptTxt);  
        //========底层添加和取消按钮  
        bottom = new JPanel();  
        bottom.add(addBtn);  
        bottom.add(cancelBtn);  
        //========整体布局  
        this.add(left,BorderLayout.WEST);  
        this.add(center,BorderLayout.CENTER);  
        this.add(bottom,BorderLayout.SOUTH);  
        //========设置窗口属性  
          
        this.setSize(300, 250);  
        this.setResizable(false);  
        this.setVisible(true);  
    }  
  
    @Override  
    public void actionPerformed(ActionEvent e)   
    {  
        // TODO Auto-generated method stub  
        if(e.getActionCommand().equals("add")) {  
            /***********************添加学生信息**************************/  
            StuModel tmp = new StuModel();  
            String sql = "insert into stu values(?,?,?,?,?,?)";  
            String []paras = {idTxt.getText(),nameTxt.getText(),sexTxt.getText(),  
                            ageTxt.getText(),jgTxt.getText(),deptTxt.getText()};  
            if(!tmp.cudStu(sql, paras))  
                JOptionPane.showMessageDialog(this, "添加学生信息失败");  
            //========关闭窗口  
            this.dispose();  
        } else if(e.getActionCommand().equals("cancel")) {  
            //========关闭窗口  
            this.dispose();  
        }  
    }  
}  

数据库连接

/**
 * @author 逸軒
 * https://www.jianshu.com/u/1b1f7b0b32d6
 */
import java.sql.*;  

public class SqlHelper {  
    //========数据库  
    private Connection ct = null;  
    private PreparedStatement ps = null;  
    private ResultSet rs = null;  
    private String driver = "com.mysql.jdbc.Driver";  //后面加上utf-8 不然中文乱码
    private String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";  
    private String user = "root";  
    private String passwd = "";  
      
    //========查询  
    public ResultSet queryExecute(String sql, String []paras)  
    {  
        try {  
            //========1、加载驱动  
            Class.forName(driver);  
            //========2、连接  
            ct = DriverManager.getConnection(url, user, passwd);  
            //========3、创建PreparedStatement  
            ps = ct.prepareStatement(sql);  
            //========4、给问号赋值  
            if(paras != null) {  
                for(int i = 0; i < paras.length; i++) {  
                    ps.setString(i + 1, paras[i]);  
                }  
            }  
            //========5、执行  
            rs = ps.executeQuery();  
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
        } finally {  
            //this.close();  
        }  
        //========返回值  
        return rs;  
    }  
      
    //========增删改  
    public boolean cudExecute(String sql, String []paras)  
    {  
        boolean b = true;  
        try {  
            //========1、加载驱动  
            Class.forName(driver);  
            //========2、连接  
            ct = DriverManager.getConnection(url, user, passwd);  
            //========3、创建PreparedStatement  
            ps = ct.prepareStatement(sql);  
            //========4、给问号赋值  
            for(int i = 0; i < paras.length; i++) {  
                ps.setString(i + 1, paras[i]);  
            }  
            //========5、执行  
            if(ps.executeUpdate() != 1) b = false;  
        } catch (Exception e) {  
            // TODO: handle exception  
            b = false;  
            e.printStackTrace();  
        } finally {  
            this.close();  
        }  
        //========返回值  
        return b;  
    }  
      
    //========关闭资源  
    public void close()  
    {  
        try {  
            if(rs!=null) rs.close();  
            if(ps!=null) ps.close();  
            if(ct!=null) ct.close();  
        } catch (Exception e2) {  
            // TODO: handle exception  
            e2.printStackTrace();  
        }  
    }  
      
}  

学生管理界面有查询功能、修改信息功能、删除功能

/**
 * @author 逸軒
 * https://www.jianshu.com/u/1b1f7b0b32d6
 */
import java.awt.*;  
import javax.swing.*;  
import java.awt.event.*;  
  
public class StudentManage extends JFrame implements ActionListener   
{  
    /** 
     * @param args 
     */  
    public static void main(String[] args)   
    {  
        // TODO Auto-generated method stub  
        new StudentManage();  
    }  
  
    //========面板控件  
    private JLabel queryLab = null;  
    private JTextField queryTxt = null;  
    private JButton queryBtn = null;  
    private JButton allBtn = null;  
    private JTable resultTb = null;  
    private JScrollPane jsp = null;  
    private JButton addBtn = null;  
    private JButton deleteBtn = null;  
    private JButton updateBtn = null;  
    private JPanel top = null;  
    private JPanel bottom = null;  
    //========  
    private StuModel sm = null;  
      
    //构造函数  
    public StudentManage()  
    {  
    	super("学生管理系统");
        /***************************初始化面板控件***********************/  
        //========查询栏  
        queryLab = new JLabel("请输入姓名:");  
        queryTxt = new JTextField(10);  
        queryBtn = new JButton("查询");  
        allBtn = new JButton("全部");  
        //......添加查询栏监听  
        queryBtn.addActionListener(this);  
        queryBtn.setActionCommand("query");  
        allBtn.addActionListener(this);  
        allBtn.setActionCommand("all");  
        //========增删改栏  
        addBtn = new JButton("添加");  
        deleteBtn = new JButton("删除");  
        updateBtn = new JButton("修改");  
        //......添加增删改栏监听  
        addBtn.addActionListener(this);  
        addBtn.setActionCommand("add");  
        deleteBtn.addActionListener(this);  
        deleteBtn.setActionCommand("delete");  
        updateBtn.addActionListener(this);  
        updateBtn.setActionCommand("update");  
        //========创建窗口整体布局  
        //......顶层查询栏  
        top = new JPanel();  
        top.add(queryLab);  
        top.add(queryTxt);  
        top.add(queryBtn);  
        top.add(allBtn);  
        //......底层增删改栏  
        bottom = new JPanel();  
        bottom.add(addBtn);  
        bottom.add(deleteBtn);  
        bottom.add(updateBtn);  
        //......中间层显示栏  
        sm = new StuModel();  
        String sql = "select * from stu";  
        sm.queryStu(sql, null);  
        resultTb = new JTable(sm);  
        jsp = new JScrollPane(resultTb);  
        //......构建整体布局  
        this.add(top,BorderLayout.NORTH);  
        this.add(jsp,BorderLayout.CENTER);  
        this.add(bottom,BorderLayout.SOUTH);  
        //========设置窗口属性  
        this.setSize(400, 300);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        this.setVisible(true);  
        this.setResizable(false);  
    }  
      
    //监听  
    @Override  
    public void actionPerformed(ActionEvent e)  
    {  
        // TODO Auto-generated method stub  
        if(e.getActionCommand().equals("query")) {  
            /*********************查询***********************/  
            //========获取输入学生的姓名  
            String name = queryTxt.getText().trim();  
            if(name.length() != 0) {  
                //========姓名输入有效时,执行查询  
                //......定义参数  
                String sql = "select * from stu where stuName=?";  
                String []paras = {name};  
                //......更新模型  
                jtableUpdate(sql, paras);  
            } else {  
                //========姓名为空时,设置提醒  
                JOptionPane.showMessageDialog(this, "姓名输入不能为空");  
            }  
        } else if(e.getActionCommand().equals("add")) {  
            /*********************添加***********************/  
            new StuAddDialog(this, "添加学生信息", true);  
            String sql = "select * from stu";  
            jtableUpdate(sql, null);  
        } else if(e.getActionCommand().equals("all")) {  
            /*********************全部显示***********************/  
            String sql = "select * from stu";  
            jtableUpdate(sql, null);  
        } else if(e.getActionCommand().equals("delete")) {  
            /*********************删除***********************/  
            //========获取选择行号  
            int rowNum = this.resultTb.getSelectedRow();  
            if(rowNum == -1) {  
                JOptionPane.showMessageDialog(this, "请选择一行");  
                return ;  
            }  
            //========获取学生ID号  
            String stuId = (String)sm.getValueAt(rowNum, 0);  
            //========删除学生  
            String sql = "delete from stu where stuId=?";  
            String []paras = {stuId};  
            StuModel tmp = new StuModel();  
            tmp.cudStu(sql, paras);  
            //========更新模型  
            sql = "select * from stu";  
            jtableUpdate(sql, null);  
        } else if(e.getActionCommand().equals("update")) {  
            /*********************修改***********************/  
            //========获取选择行号  
            int rowNum = this.resultTb.getSelectedRow();  
            if(rowNum == -1) {  
                JOptionPane.showMessageDialog(this, "请选择一行");  
                return ;  
            }  
            new StuUpdateDialog(this, "修改学生信息", true, sm, rowNum);  
            String sql = "select * from stu";  
            jtableUpdate(sql, null);  
        }  
    }  
      
    //========更新JTable内数据  
    public void jtableUpdate(String sql, String[] paras)  
    {  
        //......创建模型  
        sm = new StuModel();  
        sm.queryStu(sql, paras);  
        //......更新显示  
        resultTb.setModel(sm);  
    }  
  
}  

修改学生信息界面设计

/**
 * @author 逸軒
 * https://www.jianshu.com/u/1b1f7b0b32d6
 */
import java.awt.BorderLayout;  
import java.awt.Frame;  
import java.awt.GridLayout;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
  
import javax.swing.JButton;  
import javax.swing.JDialog;  
import javax.swing.JLabel;  
import javax.swing.JOptionPane;  
import javax.swing.JPanel;  
import javax.swing.JTextField;  
import javax.swing.table.AbstractTableModel;  
  
public class StuUpdateDialog extends JDialog implements ActionListener{  
    //=========面板控件  
    //......左侧标题栏  
    private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab;  
    //......右侧信息选择填写栏  
    private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt;  
    //......添加和取消按钮  
    private JButton addBtn,cancelBtn;  
    //......布局控件  
    private JPanel left,center,bottom;  
      
    //构造函数  
    public StuUpdateDialog(Frame owner, String title, boolean modal, StuModel sm, int rowNum)   
    {  
        //========重写父类方法  
        super(owner, title, modal);  
        //========左侧标签栏  
        idLab = new JLabel("学号: ");  
        nameLab = new JLabel("姓名: ");  
        sexLab = new JLabel("性别: ");  
        ageLab = new JLabel("年龄: ");  
        jgLab = new JLabel("籍贯: ");  
        deptLab = new JLabel("系别: ");  
        //========右侧信息填写栏  
        idTxt = new JTextField();     
        idTxt.setText((String)sm.getValueAt(rowNum, 0));  
        idTxt.setEditable(false);  
        nameTxt = new JTextField();  
        nameTxt.setText((String)sm.getValueAt(rowNum, 1));  
        sexTxt = new JTextField();  
        sexTxt.setText((String)sm.getValueAt(rowNum, 2));  
        ageTxt = new JTextField();  
        ageTxt.setText((String)sm.getValueAt(rowNum, 3));  
        jgTxt = new JTextField();  
        jgTxt.setText((String)sm.getValueAt(rowNum, 4));  
        deptTxt = new JTextField();  
        deptTxt.setText((String)sm.getValueAt(rowNum, 5));  
        //========添加和取消按钮  
        addBtn = new JButton("修改");  
        cancelBtn = new JButton("取消");  
        //......添加监听  
        addBtn.addActionListener(this);  
        addBtn.setActionCommand("update");  
        cancelBtn.addActionListener(this);  
        cancelBtn.setActionCommand("cancel");  
        //========创建布局  
        //......创建左边栏  
        left = new JPanel();  
        left.setLayout(new GridLayout(6, 1));  
        left.add(idLab);  left.add(nameLab);   
        left.add(sexLab); left.add(ageLab);   
        left.add(jgLab);  left.add(deptLab);   
        //......创建右边栏  
        center = new JPanel();  
        center.setLayout(new GridLayout(6, 1));  
        center.add(idTxt);  center.add(nameTxt);  
        center.add(sexTxt); center.add(ageTxt);  
        center.add(jgTxt);  center.add(deptTxt);  
        //========底层添加和取消按钮  
        bottom = new JPanel();  
        bottom.add(addBtn);  
        bottom.add(cancelBtn);  
        //========整体布局  
        this.add(left,BorderLayout.WEST);  
        this.add(center,BorderLayout.CENTER);  
        this.add(bottom,BorderLayout.SOUTH);  
        //========设置窗口属性  
          
        this.setSize(300, 250);  
        this.setResizable(false);  
        this.setVisible(true);  
    }  
  
    @Override  
    public void actionPerformed(ActionEvent e) {  
        // TODO Auto-generated method stub  
        if(e.getActionCommand().equals("update")) {  
        /***********************修改学生信息**************************/  
            StuModel tmp = new StuModel();  
            String sql = "update stu set stuName=?,stuSex=?,stuAge=?,stuJg=?,stuDept=? where stuId=?";  
            String []paras = {nameTxt.getText(),sexTxt.getText(),ageTxt.getText(),  
                            jgTxt.getText(),deptTxt.getText(),idTxt.getText()};  
            if(!tmp.cudStu(sql, paras))  
                JOptionPane.showMessageDialog(this, "修改学生信息失败");  
            //========关闭窗口  
            this.dispose();  
        } else if(e.getActionCommand().equals("cancel")) {  
            //========关闭窗口  
            this.dispose();  
        }  
    }  
}  

查询学生功能

/**
 * @author 逸軒
 * https://www.jianshu.com/u/1b1f7b0b32d6
 */
import java.sql.ResultSet;  
import java.util.Vector;  
import javax.swing.table.AbstractTableModel;  
  
public class StuModel extends AbstractTableModel{  
    private Vector columnNames;  
    private Vector rowDates;  
      
    //  
    public StuModel()  
    {  
        String sql = "select * from stu";  
        String []paras = {};  
          
    }  
      
    //========增删改学生  
    public boolean cudStu(String sql, String []paras)  
    {  
        return new SqlHelper().cudExecute(sql, paras);  
    }  
      
    //========查询学生  
    public void queryStu(String sql, String []paras)  
    {  
        SqlHelper sqlHelper = null;  
        //========初始化JTable信息  
        columnNames = new Vector();  
        rowDates = new Vector();  
        columnNames.add("学号"); columnNames.add("名字");  
        columnNames.add("性别"); columnNames.add("年龄");  
        columnNames.add("籍贯"); columnNames.add("系别");  
          
        try {  
            sqlHelper = new SqlHelper();  
            ResultSet rs = sqlHelper.queryExecute(sql, paras);  
            while(rs.next()) {  
                Vector row = new Vector();  
                row.add(rs.getString(1));  
                row.add(rs.getString(2));  
                row.add(rs.getString(3));  
                row.add(rs.getString(4));  
                row.add(rs.getString(5));  
                row.add(rs.getString(6));  
                rowDates.add(row);  
            }  
        } catch (Exception e) {  
            // TODO: handle exception  
        } finally {  
            sqlHelper.close();  
        }  
          
    }  
  
    @Override  
    public int getColumnCount() {  
        // TODO Auto-generated method stub  
        return this.columnNames.size();  
    }  
  
    @Override  
    public int getRowCount() {  
        // TODO Auto-generated method stub  
        return this.rowDates.size();  
    }  
  
    @Override  
    public Object getValueAt(int row, int col) {  
        // TODO Auto-generated method stub  
        if(!rowDates.isEmpty())  
            return ((Vector)this.rowDates.get(row)).get(col);  
        else  
            return null;  
    }  
  
      
    @Override  
    public String getColumnName(int column) {  
        // TODO Auto-generated method stub  
        return (String)this.columnNames.get(column);  
    }  
  
      
}  

截图演示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
链接下载
https://download.csdn.net/download/qq_40861561/11286135

发布了37 篇原创文章 · 获赞 53 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_40861561/article/details/94729902