Swing书籍管理系统【窗体】

前言:

Swing 是一个为Java设计的GUI工具包。

Swing是JAVA基础类的一部分。

Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。

Swing提供许多比AWT更好的屏幕显示元素。

Swing的特点:

1、用纯Java写成,所以同Java本身一样可以支持跨平台运行

2、是JFC的一部分,支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。


 一、创建项目

1、在SQLServer数据库中创建书籍表【Book】

2、在Eclipse中创建项目【Swing Book】

3、在src中创建4个包,分别是util包(帮助类)、entity包(实体类)、dao包(数据操作类)、ui包(窗体类)

二、配置环境

1、进行导包,将jar包导入项目        

2、若要美化可导入美化包        

3、运行主页面窗体

三、书籍系统的数据维护 

DBHelper.java【帮助类】



public class DBHelper {
	private static String cname="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=Chinese";
	private static String uname="sa";//数据库登录名称
	private static String pwd="1216";//登录密码

	//注册静态代码块
	static {
		try {
			Class.forName(cname);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 连接数据库
	 * @return
	 */
	public static Connection getcon() {
		Connection con = null;
		try {
			con = DriverManager.getConnection(url, uname, pwd);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con;
	}
	/**
	 * 关闭连接
	 * @param con
	 * @param ps
	 * @param rs
	 */
	public static void closeDB(Connection con,PreparedStatement ps,ResultSet rs) {
		try {
            //判断con/ps/rs不为空
			if(con!=null) {
				con.close();
			}
			if(ps!=null) {
				ps.close();
			}
			if(rs!=null) {
				rs.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

    //测试
	public static void main(String[] args) {
		System.out.println(DBHelper.getcon());
	}

}

Book.java 【书籍实体类】

package com.china.entity;

public class Book {
	private int bid;
	private String bname;
	private String btype;
	private String bpeople;//面向人群
	private String baddress;//出版社
	private String binfo;
	public Book() {
		super();
	}
	public Book(int bid, String bname, String btype, String bpeople, String baddress, String binfo) {
		super();
		this.bid = bid;
		this.bname = bname;
		this.btype = btype;
		this.bpeople = bpeople;
		this.baddress = baddress;
		this.binfo = binfo;
	}
	public Book(String bname, String btype, String bpeople, String baddress, String binfo) {
		super();
		this.bname = bname;
		this.btype = btype;
		this.bpeople = bpeople;
		this.baddress = baddress;
		this.binfo = binfo;
	}
	public int getBid() {
		return bid;
	}
	public void setBid(int bid) {
		this.bid = bid;
	}
	public String getBname() {
		return bname;
	}
	public void setBname(String bname) {
		this.bname = bname;
	}
	public String getBtype() {
		return btype;
	}
	public void setBtype(String btype) {
		this.btype = btype;
	}
	public String getBpeople() {
		return bpeople;
	}
	public void setBpeople(String bpeople) {
		this.bpeople = bpeople;
	}
	public String getBaddress() {
		return baddress;
	}
	public void setBaddress(String baddress) {
		this.baddress = baddress;
	}
	public String getBinfo() {
		return binfo;
	}
	public void setBinfo(String binfo) {
		this.binfo = binfo;
	}
	@Override
	public String toString() {
		return "Book [bid=" + bid + ", bname=" + bname + ", btype=" + btype + ", bpeople=" + bpeople + ", baddress="
				+ baddress + ", binfo=" + binfo + "]";
	}
	
}

BookDao.java【数据操作类】 


public class BookDao {
	//模糊查询
	public ArrayList<Book> getBylike(String col,String str){
		ArrayList<Book> blist = new ArrayList<>();
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			//连接数据库
			con =DBHelper.getcon();
			//创建PreparedStatement对象
			ps = con.prepareStatement("select * from Book where "+col+" like '%"+str+"%' ");
			//执行SQL语句
			rs = ps.executeQuery();
			//给·占位符赋值
			while(rs.next()) {
				int bid = rs.getInt(1);
				String bname = rs.getString(2);
				String btype = rs.getString(3);
				String bpeople = rs.getString(4);
				String baddress = rs.getString(5);
				String binfo = rs.getString(6);
				//实例化一个对象
				Book b = new Book(bid, bname, btype, bpeople, baddress, binfo);
				//把对象添加到集合中
				blist.add(b);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.closeDB(con, ps, rs);
		}
		return blist;
	}
	//查询单个
	public Book getByid(int bid) {
		Book b = null;
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			con = DBHelper.getcon();
			ps = con.prepareStatement("select * from Book where bid="+bid);
			rs = ps.executeQuery();
			if(rs.next()) {
				String bname = rs.getString(2);
				String btype = rs.getString(3);
				String bpeople = rs.getString(4);
				String baddress = rs.getString(5);
				String binfo = rs.getString(6);
				//实例化一个对象
				b = new Book(bid, bname, btype, bpeople, baddress, binfo);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.closeDB(con, ps, rs);
		}
		return b;
	}
	//添加
	public int addBK(Book b) {
		int i = 0;
		Connection con = null;
		PreparedStatement ps = null;
		try {
			con = DBHelper.getcon();
			ps = con.prepareStatement("insert into Book values(?,?,?,?,?)");
			//给占位符赋值
			ps.setString(1, b.getBname());
			ps.setString(2, b.getBtype());
			ps.setString(3, b.getBpeople());
			ps.setString(4, b.getBaddress());
			ps.setString(5, b.getBinfo());
			//执行sql语句
			i = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.closeDB(con, ps, null);
		}
		return i;
	}
	//修改
	public int upBK(int bid,Book b) {
		int i = 0;
		Connection con = null;
		PreparedStatement ps = null;
		try {
			con = DBHelper.getcon();
			ps = con.prepareStatement("update Book set bname=?,btype=?,bpeople=?,baddress=?,binfo=? where bid="+bid);
			//给占位符赋值
			ps.setString(1, b.getBname());
			ps.setString(2, b.getBtype());
			ps.setString(3, b.getBpeople());
			ps.setString(4, b.getBaddress());
			ps.setString(5, b.getBinfo());
			//执行sql语句
			i = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.closeDB(con, ps, null);
		}
		return i;
	}
	//删除
	public int delBK(int bid) {
		int i = 0;
		Connection con = null;
		PreparedStatement ps = null;
		try {
			con = DBHelper.getcon();
			ps = con.prepareStatement("delete Book where bid="+bid);
			//执行sql语句
			i = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.closeDB(con, ps, null);
		}
		return i;
	}

}

 Index_UI.java【主窗体】



public class Index_UI extends JFrame{
	//上面的画布
	JPanel topjp = new JPanel();
	//下拉框
	JComboBox<String> jcb = new JComboBox<>();
	//文本框
	JTextField jtf = new JTextField(10);
	//查询按钮
	JButton jbcx = new JButton("查询");
	
	//中间表
	JTable jt = new JTable();
	//表模式
	DefaultTableModel dtm = new DefaultTableModel();
	//滚动面板
	JScrollPane jsp = new JScrollPane(jt);
	
	//下面的画布
	JPanel bottomjp = new JPanel();
	//按钮
	JButton add = new JButton("添加");
	JButton up = new JButton("修改");
	JButton del = new JButton("删除");
	JButton xq = new JButton("详情");
	JButton exit = new JButton("退出");

	public Index_UI() {
		this.setTitle("主窗体");
		this.setSize(500,500);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		//画布
		JPanel jp = new JPanel();
		//上面的画布
		topjp.add(jcb);
		//给下拉框添加名称
		jcb.addItem("名字");
		jcb.addItem("类型");
		jcb.addItem("人群");
		topjp.add(jtf);
		topjp.add(jbcx);
		
		//中间表
		jt.setModel(dtm);
		//给表格添加标题
		dtm.addColumn("编号");
		dtm.addColumn("名字");
		dtm.addColumn("类型");
		dtm.addColumn("人群");
		dtm.addColumn("出版");
		dtm.addColumn("简介");
		
		//调用showinfo方法给表格添加标题
		showinfo("bname", "");
		//下面的画布
		bottomjp.add(add);
		bottomjp.add(up);
		bottomjp.add(del);
		bottomjp.add(xq);
		bottomjp.add(exit);
		
		//给查询按钮添加事件
		jbcx.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//获取下拉框中的选项
				String col = jcb.getSelectedItem()+"";
				//判断字段
				if(col.equals("名字")) {
					col = "bname";
				}else if(col.equals("类型")) {
					col = "btype";
				}else if(col.equals("人群")) {
					col = "bpeople";
				}
				//获取关键字
				String str = jtf.getText();
				//调用showinfo方法
				showinfo(col, str);
			}
		});
		//给添加按钮添加事件
		add.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//打开添加窗体--同时把本窗体传过去
				new Add_UI(Index_UI.this);
			}
		});
		//给修改按钮添加事件
		up.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//获取要修改的行,获取选中的行,为选中返回-1
				int row = jt.getSelectedRow();
				if(row>=0) {
					//获取编号
					String id = dtm.getValueAt(row, 0)+"";
					int bid = Integer.valueOf(id);
					//调用dao类修改方法
					Book b = new BookDao().getByid(bid);
					//打开修改窗体--同时把本窗体传过去
					new Up_UI(b, Index_UI.this);
				}else {
					JOptionPane.showMessageDialog(null, "请选择要修改的对象!");
				}
			}
		});
		//给删除按钮添加事件
		del.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//获取要删除的行,获取选中的行下标,为选中返回-1
				int row = jt.getSelectedRow();
				if(row>=0) {
					//获取编号
					String id = dtm.getValueAt(row, 0)+"";
					int bid = Integer.valueOf(id);
					if(JOptionPane.showConfirmDialog(null, "你确定要删除吗?")==0) {
						//调用daol类删除方法
						int i = new BookDao().delBK(bid);
						if(i==1) {
							JOptionPane.showMessageDialog(null, "删除成功!");
							//刷新窗体
							showinfo("bname", "");
						}else {
							JOptionPane.showMessageDialog(null, "删除失败!");
						}
					}else {
						JOptionPane.showMessageDialog(null, "撤销删除!");
					}
				}else {
					JOptionPane.showMessageDialog(null, "请选择要删除的对象!");
				}
			}
		});
		//给详情按钮添加事件
		xq.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//获取要查看的行,获取选中的行下标,未选中返回-1
				int row = jt.getSelectedRow();
				if(row>=0) {
					//获取编号
					String id = dtm.getValueAt(row, 0)+"";
					int bid = Integer.valueOf(id);
					//调用dao类查询单个方法
					Book b =new BookDao().getByid(bid); 
					//打开详情窗体--同时把本窗体传过去
					new Sel_UI(b, Index_UI.this);
				}else {
					JOptionPane.showMessageDialog(null, "请选择要查看的对象!");
				}
			}
		});
		//给退出按钮添加事件
		exit.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//释放本窗体资源
				Index_UI.this.dispose();
			}
		});
		//设置位置
		this.getContentPane().add("North",topjp);
		this.getContentPane().add("Center",jsp);
		this.getContentPane().add("South",bottomjp);
        //设置显示
		this.setVisible(true);
	}
	public void showinfo(String col,String str) {
		//获取到表格中的所有数据的总行数
		int count = jt.getRowCount();
		for (int i = 0; i < count; i++) {
			dtm.removeRow(0);//每循环一次就删掉一行
		}
		//实例化dao类对象
		BookDao bd = new BookDao();
		ArrayList<Book> blist = bd.getBylike(col, str);
		for (Book b : blist) {
			//创建一个集合,用来接收要往表格中添加的数据
			Vector<Object> v = new Vector<>();
			v.add(b.getBid());
			v.add(b.getBname());
			v.add(b.getBtype());
			v.add(b.getBpeople());
			v.add(b.getBaddress());
			v.add(b.getBinfo());
			//将对象添加到表格中
			dtm.addRow(v);
		}
	}
    //美化
	public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
		UIManager.setLookAndFeel("org.jb2011.lnf.beautyeye.BeautyEyeLookAndFeelCross");
		new Index_UI();
	}

}

Add_UI.java 【添加窗体】 


public class Add_UI extends JFrame{
	public Add_UI(Index_UI index) {
		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 jlname = new JLabel("名字:");
        //设置文本坐标
		gbc.gridx = 0;
		gbc.gridy = 0;
        //设置名字文本的约束对象
		gbl.setConstraints(jlname, gbc);
        //将文本添加到画布中
		jp.add(jlname);
		//文本框
		JTextField jtname = new JTextField(10);
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbl.setConstraints(jtname, gbc);
		jp.add(jtname);
		//类型文本
		JLabel jltype = new JLabel("类型:");
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbl.setConstraints(jltype, gbc);
		jp.add(jltype);
		//类型-单选按钮
		JRadioButton jrw = new JRadioButton("文学");
		gbc.gridx = 1;
		gbc.gridy = 1;
		gbl.setConstraints(jrw, gbc);
		jp.add(jrw);
		
		JRadioButton jrt = new JRadioButton("童话");
		gbc.gridx = 2;
		gbc.gridy = 1;
		gbl.setConstraints(jrt, gbc);
		jp.add(jrt);
		//单选按钮分组
		ButtonGroup bg = new ButtonGroup();
		bg.add(jrw);
		bg.add(jrt);
		//人群文本
		JLabel jlrq = new JLabel("人群:");
		gbc.gridx = 0;
		gbc.gridy = 2;
		gbl.setConstraints(jlrq, gbc);
		jp.add(jlrq);
		//人群-复选框
		JCheckBox jcba = new JCheckBox("少儿");
		gbc.gridx = 1;
		gbc.gridy = 2;
		gbl.setConstraints(jcba, gbc);
		jp.add(jcba);
		
		JCheckBox jcbb = new JCheckBox("青年");
		gbc.gridx = 2;
		gbc.gridy = 2;
		gbl.setConstraints(jcbb, gbc);
		jp.add(jcbb);
		
		JCheckBox jcbc = new JCheckBox("中年");
		gbc.gridx = 1;
		gbc.gridy = 3;
		gbl.setConstraints(jcbc, gbc);
		jp.add(jcbc);
		
		JCheckBox jcbd = new JCheckBox("老年");
		gbc.gridx = 2;
		gbc.gridy = 3;
		gbl.setConstraints(jcbd, gbc);
		jp.add(jcbd);
		//出版文本
		JLabel jladdress = new JLabel("出版:");
		gbc.gridx = 0;
		gbc.gridy = 4;
		gbl.setConstraints(jladdress, gbc);
		jp.add(jladdress);
		//出版下拉框
		JComboBox<String> jcb = new JComboBox<>();
		jcb.addItem("北京");
		jcb.addItem("湖南");
		jcb.addItem("陕西");
		jcb.addItem("四川");
		jcb.addItem("浙江");
		jcb.addItem("湖北");
		gbc.gridx = 1;
		gbc.gridy = 4;
		gbl.setConstraints(jcb, gbc);
		jp.add(jcb);
		//简介文本
		JLabel jlinfo = new JLabel("简介:");
		gbc.gridx = 0;
		gbc.gridy = 5;
		gbl.setConstraints(jlinfo, gbc);
		jp.add(jlinfo);
		//文本域
		JTextArea jta = new JTextArea(5,10);
		//滚动面板
		JScrollPane jsp = new JScrollPane(jta);
		gbc.gridx = 1;
		gbc.gridy = 5;
		gbl.setConstraints(jsp, gbc);
		jp.add(jsp);
		//按钮
		JButton jbadd = new JButton("添加");
		gbc.gridx = 0;
		gbc.gridy = 6;
		gbl.setConstraints(jbadd, gbc);
		jp.add(jbadd);
		
		JButton jbqx = new JButton("取消");
		gbc.gridx = 2;
		gbc.gridy = 6;
		gbl.setConstraints(jbqx, gbc);
		jp.add(jbqx);
		
		//给添加按钮添加事件
		jbadd.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//名字
				String bname = jtname.getText();
				//类型
				String btype = "文学";
				if(jrt.isSelected()) {
					btype = "童话";
				}
				//人群
				String bpeople = "";
				if(jcba.isSelected()) {
					bpeople+="少儿";
				}
				if(jcbb.isSelected()) {
					bpeople+="青年";
				}
				if(jcbc.isSelected()) {
					bpeople+="中年";
				}
				if(jcbd.isSelected()) {
					bpeople+="老年";
				}
				//出版
				String baddress = jcb.getSelectedItem()+"";
				//简介
				String binfo = jta.getText();
				//调用dao类添加方法
				Book b = new Book(bname, btype, bpeople, baddress, binfo);
				if(new BookDao().addBK(b)>0) {
					JOptionPane.showMessageDialog(null, "添加成功!");
					//刷新表格
					index.showinfo("bname", "");
					//释放本窗体资源
					Add_UI.this.dispose();
				}else {
					JOptionPane.showMessageDialog(null, "添加失败!");
				}
			}
		});
		//给取消按钮添加事件
		jbqx.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//释放本窗体资源
				Add_UI.this.dispose();
			}
		});
		
		this.getContentPane().add(jp);
		this.setVisible(true);
	}

}

Update_UI.java    【修改窗体】 


public class Up_UI extends JFrame{
	public Up_UI(Book b,Index_UI index) {
		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 jlname = new JLabel("名字:");
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbl.setConstraints(jlname, gbc);
		jp.add(jlname);
		//文本框
		JTextField jtname = new JTextField(10);
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbl.setConstraints(jtname, gbc);
		jp.add(jtname);
		//类型文本
		JLabel jltype = new JLabel("类型:");
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbl.setConstraints(jltype, gbc);
		jp.add(jltype);
		//类型-单选按钮
		JRadioButton jrw = new JRadioButton("文学");
		gbc.gridx = 1;
		gbc.gridy = 1;
		gbl.setConstraints(jrw, gbc);
		jp.add(jrw);
		
		JRadioButton jrt = new JRadioButton("童话");
		gbc.gridx = 2;
		gbc.gridy = 1;
		gbl.setConstraints(jrt, gbc);
		jp.add(jrt);
		//单选按钮分组
		ButtonGroup bg = new ButtonGroup();
		bg.add(jrw);
		bg.add(jrt);
		//人群文本
		JLabel jlrq = new JLabel("人群:");
		gbc.gridx = 0;
		gbc.gridy = 2;
		gbl.setConstraints(jlrq, gbc);
		jp.add(jlrq);
		//人群-复选框
		JCheckBox jcba = new JCheckBox("少儿");
		gbc.gridx = 1;
		gbc.gridy = 2;
		gbl.setConstraints(jcba, gbc);
		jp.add(jcba);
		
		JCheckBox jcbb = new JCheckBox("青年");
		gbc.gridx = 2;
		gbc.gridy = 2;
		gbl.setConstraints(jcbb, gbc);
		jp.add(jcbb);
		
		JCheckBox jcbc = new JCheckBox("中年");
		gbc.gridx = 1;
		gbc.gridy = 3;
		gbl.setConstraints(jcbc, gbc);
		jp.add(jcbc);
		
		JCheckBox jcbd = new JCheckBox("老年");
		gbc.gridx = 2;
		gbc.gridy = 3;
		gbl.setConstraints(jcbd, gbc);
		jp.add(jcbd);
		//出版文本
		JLabel jladdress = new JLabel("出版:");
		gbc.gridx = 0;
		gbc.gridy = 4;
		gbl.setConstraints(jladdress, gbc);
		jp.add(jladdress);
		//出版下拉框
		JComboBox<String> jcb = new JComboBox<>();
		jcb.addItem("北京");
		jcb.addItem("湖南");
		jcb.addItem("陕西");
		jcb.addItem("四川");
		jcb.addItem("浙江");
		jcb.addItem("湖北");
		gbc.gridx = 1;
		gbc.gridy = 4;
		gbl.setConstraints(jcb, gbc);
		jp.add(jcb);
		//简介文本
		JLabel jlinfo = new JLabel("简介:");
		gbc.gridx = 0;
		gbc.gridy = 5;
		gbl.setConstraints(jlinfo, gbc);
		jp.add(jlinfo);
		//文本域
		JTextArea jta = new JTextArea(5,10);
		//滚动面板
		JScrollPane jsp = new JScrollPane(jta);
		gbc.gridx = 1;
		gbc.gridy = 5;
		gbl.setConstraints(jsp, gbc);
		jp.add(jsp);
		//按钮
		JButton jbup = new JButton("修改");
		gbc.gridx = 0;
		gbc.gridy = 6;
		gbl.setConstraints(jbup, gbc);
		jp.add(jbup);
		
		JButton jbqx = new JButton("取消");
		gbc.gridx = 2;
		gbc.gridy = 6;
		gbl.setConstraints(jbqx, gbc);
		jp.add(jbqx);
		
		//名字 赋值
		jtname.setText(b.getBname());
		//类型
		jrw.setSelected(true);//默认选中文学
		if(b.getBtype().equals("童话")) {
			jrt.setSelected(true);
		}
		//人群
		String bpeople = b.getBpeople();
		if(bpeople.contains("少儿")) {
			jcba.setSelected(true);
		}
		if(bpeople.contains("青年")) {
			jcbb.setSelected(true);
		}
		if(bpeople.contains("中年")) {
			jcbc.setSelected(true);
		}
		if(bpeople.contains("老年")) {
			jcbd.setSelected(true);
		}
		//出版
		jcb.setSelectedItem(b.getBaddress());
		//简介
		jta.setText(b.getBinfo());
		
		//给修改按钮添加事件
		jbup.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//名字
				String bname = jtname.getText();
				//类型
				String btype = "文学";
				if(jrt.isSelected()) {
					btype = "童话";
				}
				//人群
				String bpeople = "";
				if(jcba.isSelected()) {
					bpeople+="少儿";
				}
				if(jcbb.isSelected()) {
					bpeople+="青年";
				}
				if(jcbc.isSelected()) {
					bpeople+="中年";
				}
				if(jcbd.isSelected()) {
					bpeople+="老年";
				}
				//出版
				String baddress = jcb.getSelectedItem()+"";
				//简介
				String binfo = jta.getText();
				//调用dao类修改方法
				Book bk = new Book(bname, btype, bpeople, baddress, binfo);
				if(new BookDao().upBK(b.getBid(), bk)>0) {
					JOptionPane.showMessageDialog(null, "修改成功!");
					//刷新窗体
					index.showinfo("bname", "");
					//释放本窗体资源
					Up_UI.this.dispose();
				}else {
					JOptionPane.showMessageDialog(null, "修改失败!");
				}
				
			}
		});
		//给取消按钮添加事件
		jbqx.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//释放本窗体资源
				Up_UI.this.dispose();
			}
		});
		
		this.getContentPane().add(jp);
		this.setVisible(true);
	}
}

详情窗体与修改窗体相似可自己研究 :>)


效果图展示:1-1(未美化的主窗体)、1-2(美化后的主窗体)、1-3(添加窗体)、

1-4、(详情窗体)


其他功能效果图(删除、退出)可自己研究代码后运行。 

 提示:1、删除:获取书籍编号,然后根据编号删除书籍

2、退出:直接释放本窗体资源即可,关键字dispose();

Over!!!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值