SWING窗体,连接数据库(SQLserver)做一个完整的学生管理系统

今天给大家带来一个初学者的连接数据库的学生管理系统

首先写一个数据库帮助类(DBHepler)

package com.zking.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class DBHepler {
	//静态代码
	private static String cname = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	private static String uname = "数据库用户名";
	private static String upwd = "数据库密码";
	private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=表名";
	
	/**
	 * 静态驱动
	 */
	static {
		try {
			//创建驱动
			Class.forName(cname);
		} catch (Exception e) {
			//处理异常
			e.printStackTrace();
		}
	}
	
	/**
	 * 静态连接
	 * @return	连接
	 */
	public static Connection getcon() {
		//定义连接
		Connection con = null;
		try {
			//连接驱动
			con = DriverManager.getConnection(url, uname, upwd);
		} catch (Exception e) {
			//处理异常
			e.printStackTrace();
		}
		//返回连接
		return con;
	}
	
	/**
	 * 关闭连接
	 * @param con	连接
	 * @param ps	执行对象
	 * @param rs	结果集
	 */
	public static void getclose(Connection con,PreparedStatement ps,ResultSet rs) {
		try {
			if(con!=null) {//关闭连接
				con.close();
			}
			if(ps!=null) {//关闭执行对象
				ps.close();
			}
			if(rs!=null) {//关闭结果集
				rs.close();
			}
		} catch (Exception e) {
			//处理异常
			e.printStackTrace();
		}
	}
	
}

我们在来一个实体类(Student)

package com.zking.entity;


public class Student {
	//私有化属性
	private int sid;//学号
	private String sname;//姓名
	private String ssex;//性别
	private String slike;//爱好
	private String saddress;//地址
	private String sinfo;//简介
	
	//公开属性
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSsex() {
		return ssex;
	}
	public void setSsex(String ssex) {
		this.ssex = ssex;
	}
	public String getSlike() {
		return slike;
	}
	public void setSlike(String slike) {
		this.slike = slike;
	}
	public String getSaddress() {
		return saddress;
	}
	public void setSaddress(String saddress) {
		this.saddress = saddress;
	}
	public String getSinfo() {
		return sinfo;
	}
	public void setSinfo(String sinfo) {
		this.sinfo = sinfo;
	}
	
	//构造函数
	public Student() {
		super();
	}
	public Student(int sid, String sname, String ssex, String slike, String saddress, String sinfo) {
		super();
		this.sid = sid;
		this.sname = sname;
		this.ssex = ssex;
		this.slike = slike;
		this.saddress = saddress;
		this.sinfo = sinfo;
	}
	public Student(String sname, String ssex, String slike, String saddress, String sinfo) {
		super();
		this.sname = sname;
		this.ssex = ssex;
		this.slike = slike;
		this.saddress = saddress;
		this.sinfo = sinfo;
	}
}

接着是方法类(Student_Dao)

里面有添加方法和删除方法,修改方法,模糊查询,单个查询

package com.zking.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import com.zking.entity.Student;
import com.zking.util.DBHepler;


public class Student_dao {
	/**
	 * 添加方法
	 * @param t	要添加学生信息
	 * @return	成功放回1,失败放回0
	 */
	public int add(Student t) {
		//定义影响行数
		int i = 0;
		//定义连接为null
		Connection con = null;
		//定义执行对象为null
		PreparedStatement ps = null;
		try {
			//执行连接
			con = DBHepler.getcon();
			//执行sql语句
			ps = con.prepareStatement("insert into student values (?,?,?,?,?)");
			//给占位符赋值
			ps.setString(1, t.getSname());
			ps.setString(2, t.getSsex());
			ps.setString(3, t.getSlike());
			ps.setString(4, t.getSaddress());
			ps.setString(5, t.getSinfo());
			//计算影响行数
			i = ps.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
			//处理异常
			e.printStackTrace();
		}finally {
			//关闭资源
			DBHepler.getclose(con, ps, null);
		}
		//返回影响行数
		return i;
	}
	
	/**
	 * 修改方法
	 * @param sid	修改前学生
	 * @param s		修改后学生信息
	 * @return		成功放回1,失败放回0
	 */
	public int update(int sid,Student t) {
		//定义影响行数
		int i = 0;
		//定义连接为null
		Connection con = null;
		//定义执行对象为null
		PreparedStatement ps = null;
		try {
			//执行连接
			con = DBHepler.getcon();
			//执行sql语句
			ps = con.prepareStatement("update student set sname=?,ssex=?,slike=?,saddress=?,sinfo=? where sid="+sid);
			//给占位符赋值
			ps.setString(1, t.getSname());
			ps.setString(2, t.getSsex());
			ps.setString(3, t.getSlike());
			ps.setString(4, t.getSaddress());
			ps.setString(5, t.getSinfo());
			//计算影响行数
			i = ps.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
			//处理异常
			e.printStackTrace();
		}finally {
			//关闭资源
			DBHepler.getclose(con, ps, null);
		}
		//返回影响行数
		return i;
	}
	
	/**
	 * 删除方法
	 * @param sid 要删除学生信息
	 * @return	成功放回1,失败放回0
	 */
	public int delete(int sid) {
		//定义影响行数
		int i = 0;
		//定义连接为null
		Connection con = null;
		//定义执行对象为null
		PreparedStatement ps = null;
		try {
			//执行连接
			con = DBHepler.getcon();
			//执行sql语句
			ps = con.prepareStatement("delete from student where sid="+sid);
			//计算影响行数
			i = ps.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
			//处理异常
			e.printStackTrace();
		}finally {
			//关闭资源
			DBHepler.getclose(con, ps, null);
		}
		//返回影响行数
		return i;
	}
	
	/**
	 * 模糊查询
	 * @param col	字段名
	 * @param str	关键字
	 * @return	集合信息
	 */
	public ArrayList like(String col,String str) {
		//定义一个实体类集合
		ArrayList list = new ArrayList<>();
		//定义连接为null
		Connection con = null;
		//定义执行对象为null
		PreparedStatement ps = null;
		//定义结果集为null
		ResultSet rs = null;
		try {
			//执行连接
			con = DBHepler.getcon();
			//执行sql语句
			ps = con.prepareStatement("select * from student where "+col+" like '%"+str+"%'");
			//执行结果集
			rs = ps.executeQuery();
			//遍历
			while(rs.next()) {
				//赋值
				int sid = rs.getInt(1);
				String sname = rs.getString(2);
				String ssex = rs.getString(3);
				String slike = rs.getString(4);
				String saddress = rs.getString(5);
				String sinfo = rs.getString(6);
				//实例化对象赋值
				Student stu = new Student(sid,sname, ssex, slike, saddress, sinfo);
				//添加
				list.add(stu);
			}
		} catch (Exception e) {
			// TODO: handle exception
			//处理异常
			e.printStackTrace();
		}finally {
			//关闭资源
			DBHepler.getclose(con, ps, rs);
		}
		//返回集合信息
		return list;
	}
	
	/**
	 * 查询单个
	 * @param sid	要查询的学生id
	 * @return	实体类信息
	 */
	public Student chaxun(int sid) {
		//定义一个实体类为null
		Student stu = null;
		//定义连接为null
		Connection con = null;
		//定义执行对象为null
		PreparedStatement ps = null;
		//定义结果集为null
		ResultSet rs = null;
		try {
			//执行连接
			con = DBHepler.getcon();
			//执行sql语句
			ps = con.prepareStatement("select * from student where sid="+sid);
			//执行结果集
			rs = ps.executeQuery();
			//遍历
			while(rs.next()) {
				//赋值
				String sname = rs.getString(2);
				String ssex = rs.getString(3);
				String slike = rs.getString(4);
				String saddress = rs.getString(5);
				String sinfo = rs.getString(6);
				//实例化对象赋值
			    stu = new Student(sid,sname, ssex, slike, saddress, sinfo);
			}
		} catch (Exception e) {
			// TODO: handle exception
			//处理异常
			e.printStackTrace();
		}finally {
			//关闭资源
			DBHepler.getclose(con, ps, rs);
		}
		//返回实体类信息
		return stu;
	}
}

接着就是我们需要的窗体了

首先是主窗体

SWING窗体,连接数据库(SQLserver)做一个完整的学生管理系统_第1张图片

 大致是这样的,上面,和下面是画布,中间是表格

package com.zking.ui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import com.zking.dao.Student_dao;
import com.zking.entity.Student;


@SuppressWarnings("serial")
public class Index_Ui extends JFrame {
	// 创建上面的画布
	JPanel jp1 = new JPanel();

	// 创建表格
	JTable jta = new JTable();
	// 创建表模式
	DefaultTableModel def = new DefaultTableModel();
	// 创建滚动面板
	JScrollPane jsc = new JScrollPane(jta);

	// 创建下面的画布
	JPanel jp2 = new JPanel();

	public Index_Ui() {
		// 创建窗体-标题
		this.setTitle("主窗体");
		// 创建窗体-大小
		this.setSize(500, 500);
		// 创建窗体-居中
		this.setLocationRelativeTo(null);
		// 创建窗体-关闭
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 创建下拉框
		JComboBox jco = new JComboBox();
		// 添加元素
		jco.addItem("名称");
		jco.addItem("性别");
		jco.addItem("地址");

		// 创建文本框
		JTextField jtf = new JTextField(10);

		// 创建按钮-查询
		JButton jb1 = new JButton("查询");

		// 添加的上面的画布
		jp1.add(jco);
		jp1.add(jtf);
		jp1.add(jb1);

		// 设置表模式
		jta.setModel(def);
		// 给表模式添加元素
		def.addColumn("学号");
		def.addColumn("姓名");
		def.addColumn("性别");
		def.addColumn("爱好");
		def.addColumn("地址");
		// 调用刷新方法
		showinfo("sname", "");

		// 创建按钮-添加,删除,修改,详情
		JButton jb2 = new JButton("添加");
		JButton jb3 = new JButton("删除");
		JButton jb4 = new JButton("修改");
		JButton jb5 = new JButton("详情");
		// 添加到下面的画布
		jp2.add(jb2);
		jp2.add(jb3);
		jp2.add(jb4);
		jp2.add(jb5);

		// 给查询按钮内部匿名事件
		jb1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 获取下拉框的值
				String col = jco.getSelectedItem() + "";
				if (col.equals("名称")) {
					col = "sname";
				}
				if (col.equals("性别")) {
					col = "ssex";
				}
				if (col.equals("爱好")) {
					col = "slike";
				}
				// 获取文本框的值
				String str = jtf.getText();
				// 调用刷新方法
				showinfo(col, str);
			}
		});

		// 给添加按钮内部匿名事件
		jb2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//打开添加窗体
				new Add_Ui(Index_Ui.this);
			}
		});

		// 给删除按钮内部匿名事件
		jb3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 获取所选择行数
				int row = jta.getSelectedRow();
				// 判断
				if (row >= 0) {
					// 获取选择行数的第一个字段值
					String id = def.getValueAt(row, 0) + "";
					// 强转
					int sid = Integer.valueOf(id);
					if (JOptionPane.showConfirmDialog(null, "是否删除?") == 0) {
						// 实例化dao类
						Student_dao sdao = new Student_dao();
						// 调用dao类删除单个方法,获取影响行数
						int i = sdao.delete(sid);
						// 判断
						if (i == 1) {
							JOptionPane.showMessageDialog(null, "删除成功");
							// 调用showinfo的方法
							showinfo("sname", "");
						} else {
							JOptionPane.showMessageDialog(null, "删除失败");
						}

					} else {
						JOptionPane.showMessageDialog(null, "取消删除");
					}

				} else {
					JOptionPane.showMessageDialog(null, "请选择要删除的学生");
				}
			}
		});

		// 给修改按钮内部匿名事件
		jb4.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				int row = jta.getSelectedRow();
				// 判断
				if (row >= 0) {
					// 获取选择行数的第一个字段值
					String id = def.getValueAt(row, 0) + "";
					// 强转
					int sid = Integer.valueOf(id);
					// 实例化dao类
					Student_dao sdao = new Student_dao();
					// 调用dao类查询单个方法
					Student stu = sdao.chaxun(sid);
					// 打开修改窗体
					new Upd_Ui(Index_Ui.this, stu);
				} else {
					JOptionPane.showMessageDialog(null, "请选择要修改的学生");
				}
			}
		});

		// 给详情按钮内部匿名事件
		jb5.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				int row = jta.getSelectedRow();
				// 判断
				if (row >= 0) {
					// 获取选择行数的第一个字段值
					String id = def.getValueAt(row, 0) + "";
					// 强转
					int sid = Integer.valueOf(id);
					// 实例化dao类
					Student_dao sdao = new Student_dao();
					// 调用dao类查询单个方法
					Student stu = sdao.chaxun(sid);
					// 打开修改窗体
					new Xq_Ui(stu);
				} else {
					JOptionPane.showMessageDialog(null, "请选择要查看的学生");
				}
			}
		});

		// 显示
		this.getContentPane().add("North", jp1);
		this.getContentPane().add("Center", jsc);
		this.getContentPane().add("South", jp2);
		this.setVisible(true);
	}

	/**
	 * 刷新方法,绑定数据
	 * 
	 * @param col 字段名
	 * @param str 关键字
	 */
	public void showinfo(String col, String str) {
		// 获取所有行
		int count = jta.getRowCount();
		// 遍历
		for (int i = 0; i < count; i++) {
			// 删除所有行
			def.removeRow(0);
		}
		// 实例化dao
		Student_dao sdao = new Student_dao();
		// 调拥dao类查询赋值给集合
		ArrayList list = sdao.like(col, str);
		// 遍历
		for (Student s : list) {
			// 实例化vc
			Vector v = new Vector<>();
			// 添加数据,绑定数据
			v.add(s.getSid());
			v.add(s.getSname());
			v.add(s.getSsex());
			v.add(s.getSlike());
			v.add(s.getSaddress());
			// 给表绑定数据
			def.addRow(v);
		}
	}

	/**
	 * 主函数
	 * @param args
	 */
	public static void main(String[] args) {
		new Index_Ui();
	}
}

 接着是添加窗体

SWING窗体,连接数据库(SQLserver)做一个完整的学生管理系统_第2张图片

 我用到的是网袋布局

package com.zking.ui;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.zking.dao.Student_dao;
import com.zking.entity.Student;


@SuppressWarnings("serial")
public class Add_Ui extends JFrame{
	public Add_Ui(Index_Ui i) {
		// 创建窗体-标题
		this.setTitle("添加窗体");
		// 创建窗体-大小
		this.setSize(500, 500);
		// 创建窗体-居中
		this.setLocationRelativeTo(null);
		// 创建窗体-关闭
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		//创建画布
		JPanel jp = new JPanel();
		//网袋布局
		GridBagLayout gbl = new GridBagLayout();
		//约束对象
		GridBagConstraints gbc = new GridBagConstraints();
		//设置网袋约束
		jp.setLayout(gbl);
		
		//创建文本标签-姓名
		JLabel jl1 = new JLabel("姓名:");
		//添加到画布
		jp.add(jl1);
		//约束
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbl.setConstraints(jl1, gbc);
		
		//创建文本框
		JTextField jtf = new JTextField(10);
		//添加到画布
		jp.add(jtf);
		//约束
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbl.setConstraints(jtf, gbc);
		
		//创建文本标签-性别
		JLabel jl2 = new JLabel("性别:");
		//添加到画布
		jp.add(jl2);
		//约束
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbl.setConstraints(jl2, gbc);
		
		//单选按钮-男
		JRadioButton jr1 = new JRadioButton("男");
		//添加到画布
		jp.add(jr1);
		//约束
		gbc.gridx = 1;
		gbc.gridy = 1;
		gbl.setConstraints(jr1, gbc);
		
		//单选按钮-女
		JRadioButton jr2 = new JRadioButton("女");
		//添加到画布
		jp.add(jr2);
		//约束
		gbc.gridx = 2;
		gbc.gridy = 1;
		gbl.setConstraints(jr2, gbc);
		
		//单选键设唯一
		ButtonGroup but = new ButtonGroup();
		but.add(jr2);
		but.add(jr1);
		
		//创建文本标签-爱好
		JLabel jl3 = new JLabel("爱好:");
		//添加到画布
		jp.add(jl3);
		//约束
		gbc.gridx = 0;
		gbc.gridy = 2;
		gbl.setConstraints(jl3, gbc);
		
		//创建多选键-画画
		JCheckBox jc1 = new JCheckBox("画画");
		//添加到画布
		jp.add(jc1);
		//约束
		gbc.gridx = 1;
		gbc.gridy = 2;
		gbl.setConstraints(jc1, gbc);
		
		//创建多选键-听歌
		JCheckBox jc2 = new JCheckBox("听歌");
		//添加到画布
		jp.add(jc2);
		//约束
		gbc.gridx = 2;
		gbc.gridy = 2;
		gbl.setConstraints(jc2, gbc);
		
		//创建文本标签-地址
		JLabel jl4 = new JLabel("地址:");
		//添加到画布
		jp.add(jl4);
		//约束
		gbc.gridx = 0;
		gbc.gridy = 3;
		gbl.setConstraints(jl4, gbc);
		
		//创建下拉框
		JComboBox jco = new JComboBox<>();
		//添加到画布
		jp.add(jco);
		//添加元素
		jco.addItem("湖南");
		jco.addItem("深圳");
		jco.addItem("上海");
		jco.addItem("杭州");
		//约束
		gbc.gridx = 1;
		gbc.gridy = 3;
		gbl.setConstraints(jco, gbc);
		
		//创建文本标签-简介
		JLabel jl5 = new JLabel("简介:");
		//添加到画布
		jp.add(jl5);
		//约束
		gbc.gridx = 0;
		gbc.gridy = 4;
		gbl.setConstraints(jl5, gbc);
		
		//创建文本域
		JTextArea jta = new JTextArea(10,10);
		//创建滚动面板
		JScrollPane jsc = new JScrollPane(jta);
		//添加到画布
		jp.add(jsc);
		//约束
		gbc.gridx = 1;
		gbc.gridy = 4;
		gbl.setConstraints(jsc, gbc);
		
		//创建按钮-确认
		JButton jb1 = new JButton("确认");
		//添加到画布
		jp.add(jb1);
		//约束
		gbc.gridx = 0;
		gbc.gridy = 5;
		gbl.setConstraints(jb1,gbc);
		
		//创建按钮-取消
		JButton jb2 = new JButton("取消");
		//添加到画布
		jp.add(jb2);
		//约束
		gbc.gridx = 2;
		gbc.gridy = 5;
		gbl.setConstraints(jb2,gbc);

		
		//给确认按钮内部匿名事件
		jb1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//获取文本框的值
				String sname = jtf.getText();
				//获取单选键的值
				String ssex = "";
				if(jr1.isSelected()) {
					ssex = "男";
				}
				if(jr2.isSelected()) {
					ssex = "女";
				}
				//获取多选框的值
				String slike = "";
				if(jc1.isSelected()) {
					slike = "画画";
				}
				if(jc2.isSelected()) {
					slike = "听歌";
				}
				//获取下拉框的值
				String saddress = jco.getSelectedItem()+"";
				//获取文本域的值
				String sinfo = jta.getText();
				//实例化对象赋值
				Student stu = new Student(sname, ssex, slike, saddress, sinfo);
				//实例化dao类,获取影响行数
				int i1 = new Student_dao().add(stu);
				//判断影响行数
				if(i1 == 1) {
					JOptionPane.showMessageDialog(null, "添加成功");
					//调用showinfo方法
					i.showinfo("sname", "");
					//关闭本窗体
					Add_Ui.this.dispose();
				}else {
					JOptionPane.showMessageDialog(null, "添加失败");
				}
			}
		});
		
		//给取消按钮内部匿名事件
		jb2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				JOptionPane.showMessageDialog(null, "退出添加");
				//关闭本窗体
				Add_Ui.this.dispose();
			}
		});
		
		//显示
		this.setVisible(true);
		this.getContentPane().add(jp);

	}
}

 其次是修改窗体

SWING窗体,连接数据库(SQLserver)做一个完整的学生管理系统_第3张图片

 

package com.zking.ui;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.zking.dao.Student_dao;
import com.zking.entity.Student;


@SuppressWarnings("serial")
public class Upd_Ui extends JFrame {
	public Upd_Ui(Index_Ui i, Student s) {
		// 创建窗体-标题
		this.setTitle("修改窗体");
		// 创建窗体-大小
		this.setSize(500, 500);
		// 创建窗体-居中
		this.setLocationRelativeTo(null);
		// 创建窗体-关闭
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 创建画布
		JPanel jp = new JPanel();
		// 网袋布局
		GridBagLayout gbl = new GridBagLayout();
		// 约束对象
		GridBagConstraints gbc = new GridBagConstraints();
		// 设置网袋约束
		jp.setLayout(gbl);

		// 创建文本标签-姓名
		JLabel jl1 = new JLabel("姓名:");
		// 添加到画布
		jp.add(jl1);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbl.setConstraints(jl1, gbc);

		// 创建文本框
		JTextField jtf = new JTextField(10);
		// 添加到画布
		jp.add(jtf);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbl.setConstraints(jtf, gbc);

		// 创建文本标签-性别
		JLabel jl2 = new JLabel("性别:");
		// 添加到画布
		jp.add(jl2);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbl.setConstraints(jl2, gbc);

		// 单选按钮-男
		JRadioButton jr1 = new JRadioButton("男");
		// 添加到画布
		jp.add(jr1);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 1;
		gbl.setConstraints(jr1, gbc);

		// 单选按钮-女
		JRadioButton jr2 = new JRadioButton("女");
		// 添加到画布
		jp.add(jr2);
		// 约束
		gbc.gridx = 2;
		gbc.gridy = 1;
		gbl.setConstraints(jr2, gbc);

		// 单选键设唯一
		ButtonGroup but = new ButtonGroup();
		but.add(jr2);
		but.add(jr1);

		// 创建文本标签-爱好
		JLabel jl3 = new JLabel("爱好:");
		// 添加到画布
		jp.add(jl3);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 2;
		gbl.setConstraints(jl3, gbc);

		// 创建多选键-画画
		JCheckBox jc1 = new JCheckBox("画画");
		// 添加到画布
		jp.add(jc1);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 2;
		gbl.setConstraints(jc1, gbc);

		// 创建多选键-听歌
		JCheckBox jc2 = new JCheckBox("听歌");
		// 添加到画布
		jp.add(jc2);
		// 约束
		gbc.gridx = 2;
		gbc.gridy = 2;
		gbl.setConstraints(jc2, gbc);

		// 创建文本标签-地址
		JLabel jl4 = new JLabel("地址:");
		// 添加到画布
		jp.add(jl4);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 3;
		gbl.setConstraints(jl4, gbc);

		// 创建下拉框
		JComboBox jco = new JComboBox<>();
		// 添加到画布
		jp.add(jco);
		// 添加元素
		jco.addItem("湖南");
		jco.addItem("深圳");
		jco.addItem("上海");
		jco.addItem("杭州");
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 3;
		gbl.setConstraints(jco, gbc);

		// 创建文本标签-简介
		JLabel jl5 = new JLabel("简介:");
		// 添加到画布
		jp.add(jl5);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 4;
		gbl.setConstraints(jl5, gbc);

		// 创建文本域
		JTextArea jta = new JTextArea(10, 10);
		// 创建滚动面板
		JScrollPane jsc = new JScrollPane(jta);
		// 添加到画布
		jp.add(jsc);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 4;
		gbl.setConstraints(jsc, gbc);

		// 创建按钮-确认
		JButton jb1 = new JButton("确认");
		// 添加到画布
		jp.add(jb1);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 5;
		gbl.setConstraints(jb1, gbc);

		// 创建按钮-取消
		JButton jb2 = new JButton("取消");
		// 添加到画布
		jp.add(jb2);
		// 约束
		gbc.gridx = 2;
		gbc.gridy = 5;
		gbl.setConstraints(jb2, gbc);
		
		//给文本框赋值
		jtf.setText(s.getSname());
		//给单选键赋值
		if(s.getSsex().equals("男")) {
			jr1.setSelected(true);
		}
		if(s.getSsex().equals("女")) {
			jr2.setSelected(true);
		}
		//给多选键赋值
		if(s.getSlike().equals("画画")) {
			jc2.setSelected(true);
		}
		if(s.getSlike().equals("听歌")) {
			jc1.setSelected(true);
		}
		//给下拉框赋值
		jco.setSelectedItem(s.getSaddress());
		//给文本域赋值
		jta.setText(s.getSinfo());

		// 给确认按钮内部匿名事件
		jb1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 获取文本框的值
				String sname = jtf.getText();
				// 获取单选键的值
				String ssex = "";
				if (jr1.isSelected()) {
					ssex = "男";
				}
				if (jr2.isSelected()) {
					ssex = "女";
				}
				// 获取多选框的值
				String slike = "";
				if (jc1.isSelected()) {
					slike = "画画";
				}
				if (jc2.isSelected()) {
					slike = "听歌";
				}
				// 获取下拉框的值
				String saddress = jco.getSelectedItem() + "";
				// 获取文本域的值
				String sinfo = jta.getText();
				// 实例化对象赋值
				Student stu = new Student(sname, ssex, slike, saddress, sinfo);
				// 实例化dao类,获取影响行数
				int i1 = new Student_dao().update(s.getSid(), stu);
				// 判断影响行数
				if (i1 == 1) {
					JOptionPane.showMessageDialog(null, "修改成功");
					// 调用showinfo方法
					i.showinfo("sname", "");
					// 关闭本窗体
					Upd_Ui.this.dispose();
				} else {
					JOptionPane.showMessageDialog(null, "修改失败");
				}
			}
		});

		// 给取消按钮内部匿名事件
		jb2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				JOptionPane.showMessageDialog(null, "退出修改");
				// 关闭本窗体
				Upd_Ui.this.dispose();
			}
		});

		// 显示
		this.setVisible(true);
		this.getContentPane().add(jp);
	}
}

 删除是没有窗体的,删除是获取到表格的值,点击删除按钮直接删除所有接下来是详情窗体

 当我没有点击一个学生删除时是要弹窗的

SWING窗体,连接数据库(SQLserver)做一个完整的学生管理系统_第4张图片

 当我选择了要删除的学生时也是要提示的

SWING窗体,连接数据库(SQLserver)做一个完整的学生管理系统_第5张图片

 

SWING窗体,连接数据库(SQLserver)做一个完整的学生管理系统_第6张图片

 

 详情窗体设置了不可对内容进行编辑

 

package com.zking.ui;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.zking.entity.Student;


@SuppressWarnings("serial")
public class Xq_Ui extends JFrame {
	public Xq_Ui(Student s) {
		// 创建窗体-标题
		this.setTitle("修改窗体");
		// 创建窗体-大小
		this.setSize(500, 500);
		// 创建窗体-居中
		this.setLocationRelativeTo(null);
		// 创建窗体-关闭
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 创建画布
		JPanel jp = new JPanel();
		// 网袋布局
		GridBagLayout gbl = new GridBagLayout();
		// 约束对象
		GridBagConstraints gbc = new GridBagConstraints();
		// 设置网袋约束
		jp.setLayout(gbl);

		// 创建文本标签-姓名
		JLabel jl1 = new JLabel("姓名:");
		// 添加到画布
		jp.add(jl1);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbl.setConstraints(jl1, gbc);

		// 创建文本框
		JTextField jtf = new JTextField(10);
		// 添加到画布
		jp.add(jtf);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbl.setConstraints(jtf, gbc);
		
		//文本框禁止编辑
		jtf.setEditable(false);

		// 创建文本标签-性别
		JLabel jl2 = new JLabel("性别:");
		// 添加到画布
		jp.add(jl2);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbl.setConstraints(jl2, gbc);

		// 单选按钮-男
		JRadioButton jr1 = new JRadioButton("男");
		// 添加到画布
		jp.add(jr1);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 1;
		gbl.setConstraints(jr1, gbc);

		// 单选按钮-女
		JRadioButton jr2 = new JRadioButton("女");
		// 添加到画布
		jp.add(jr2);
		// 约束
		gbc.gridx = 2;
		gbc.gridy = 1;
		gbl.setConstraints(jr2, gbc);
		
		//给多选键禁止编辑
		jr1.setEnabled(false);
		jr2.setEnabled(false);

		// 单选键设唯一
		ButtonGroup but = new ButtonGroup();
		but.add(jr2);
		but.add(jr1);

		// 创建文本标签-爱好
		JLabel jl3 = new JLabel("爱好:");
		// 添加到画布
		jp.add(jl3);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 2;
		gbl.setConstraints(jl3, gbc);

		// 创建多选键-画画
		JCheckBox jc1 = new JCheckBox("画画");
		// 添加到画布
		jp.add(jc1);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 2;
		gbl.setConstraints(jc1, gbc);

		// 创建多选键-听歌
		JCheckBox jc2 = new JCheckBox("听歌");
		// 添加到画布
		jp.add(jc2);
		// 约束
		gbc.gridx = 2;
		gbc.gridy = 2;
		gbl.setConstraints(jc2, gbc);
		
		//多选键禁止编辑
		jc1.setEnabled(false);
		jc2.setEnabled(false);

		// 创建文本标签-地址
		JLabel jl4 = new JLabel("地址:");
		// 添加到画布
		jp.add(jl4);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 3;
		gbl.setConstraints(jl4, gbc);

		// 创建下拉框
		JComboBox jco = new JComboBox<>();
		// 添加到画布
		jp.add(jco);
		// 添加元素
		jco.addItem("湖南");
		jco.addItem("深圳");
		jco.addItem("上海");
		jco.addItem("杭州");
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 3;
		gbl.setConstraints(jco, gbc);
		
		//下拉框禁止编辑
		jco.setEnabled(false);
		
		// 创建文本标签-简介
		JLabel jl5 = new JLabel("简介:");
		// 添加到画布
		jp.add(jl5);
		// 约束
		gbc.gridx = 0;
		gbc.gridy = 4;
		gbl.setConstraints(jl5, gbc);

		// 创建文本域
		JTextArea jta = new JTextArea(10, 10);
		// 创建滚动面板
		JScrollPane jsc = new JScrollPane(jta);
		// 添加到画布
		jp.add(jsc);
		// 约束
		gbc.gridx = 1;
		gbc.gridy = 4;
		gbl.setConstraints(jsc, gbc);
		
		//文本域禁止编辑
		jta.setEditable(false);

		// 创建按钮-退出
		JButton jb2 = new JButton("退出");
		// 添加到画布
		jp.add(jb2);
		// 约束
		gbc.gridx = 2;
		gbc.gridy = 5;
		gbl.setConstraints(jb2, gbc);

		// 给文本框赋值
		jtf.setText(s.getSname());
		// 给单选键赋值
		if (s.getSsex().equals("男")) {
			jr1.setSelected(true);
		}
		if (s.getSsex().equals("女")) {
			jr2.setSelected(true);
		}
		// 给多选键赋值
		if (s.getSlike().equals("画画")) {
			jc2.setSelected(true);
		}
		if (s.getSlike().equals("听歌")) {
			jc1.setSelected(true);
		}
		// 给下拉框赋值
		jco.setSelectedItem(s.getSaddress());
		// 给文本域赋值
		jta.setText(s.getSinfo());

		// 给退出按钮内部匿名事件
		jb2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				JOptionPane.showMessageDialog(null, "退出详情");
				// 关闭本窗体
				Xq_Ui.this.dispose();
			}
		});

		// 显示
		this.setVisible(true);
		this.getContentPane().add(jp);
	}
}

OK,所有的内容展示完了,如果遇到什么问题可以评论区留言或者私信我,我在看到的情况下尽自己最大的知识度去为大家解答疑惑。

你可能感兴趣的:(java,eclipse)