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);  
    }  
  
      
}  

截图演示


2.JPG
3.JPG
4.JPG
5.JPG
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容