学生管理系统java界面_java学生管理系统界面设计

学生管理系统java界面_java学生管理系统界面设计关于学生管理系统的界面设计 代码如下 数据库设计 DROPTABLEIFE stu CREATETABLE stu stuId int 11 NOTNULLAUTO INCREMENT stuName

大家好,欢迎来到IT知识分享网。

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

数据库设计

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

}

}

截图演示

12a139a07368

12a139a07368

2.JPG

12a139a07368

3.JPG

12a139a07368

4.JPG

12a139a07368

5.JPG

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/100480.html

(0)
上一篇 2026-02-26 17:34
下一篇 2026-02-26 20:21

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信