package com.library.view;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import com.library.biz.impl.BookBiz;
import com.library.biz.impl.BookBizImpl;
import com.library.biz.impl.UsersBiz;
import com.library.biz.impl.UsersBizImpl;
import com.libraty.entity.Book;
import com.libraty.entity.Users;
public class UserBookInquiry extends JInternalFrame{
private static final long serialVersionUID = 1L;
private JPanel panel_table=null;/** 表格面板 */
private JPanel panel_buttons=null; /** 按钮面板 */
private JTable table=null; /** */
private JLabel lb_type=null;
private JComboBox<String> cb_type=null;
private JButton btn_search=null; /** 查询按钮 */
private JButton btn_borrow=null; /** 借书按钮 */
private JButton btn_exit=null; /** 退出按钮 */
/** 属性依赖 */
private BookBiz bookBiz;
private UsersBiz usersBiz;
/** 保存用户信息的属性 */
private Users user;
/** 用户临时存放图书编号 */
private int book_id;
/** 初始化块 */
{
this.usersBiz=new UsersBizImpl();
this.bookBiz=new BookBizImpl();
init();/** 一定要调用初始化方法,否则空指针 */
}
public UserBookInquiry(){
}
public UserBookInquiry(Users user){
this.user=user;
}
private void init()
{
panel_table=new JPanel(new BorderLayout());/** 表格面板 new BorderLayout()边框布局*/
panel_table.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(),"图书信息列表"));
panel_buttons = new JPanel(new GridLayout(7, 1, 0, 30));/** 按钮面板 */
panel_buttons.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(),"查询条件"));
/**
* 文本类型
* 下拉框
* 按钮
* */
table=new JTable();
lb_type=new JLabel("查询类型:");
cb_type=new JComboBox<String>(new String[]{"查询全部图书","查询热门图书","查询可借图书","查询不可借图书"});
btn_search=new JButton("查询"); /** 查询按钮 */
btn_borrow=new JButton("借书"); /** 查借书按钮 */
btn_exit=new JButton("退出窗口"); /** 退出窗口按钮 */
/** 给按钮注册侦听器*/
registerActionListener();
/** 拼装 */
panel_table.add(table);
panel_buttons.add(lb_type);
panel_buttons.add(cb_type);
panel_buttons.add(btn_search);
panel_buttons.add(btn_borrow);
panel_buttons.add(new JLabel());/** 空白 */
panel_buttons.add(new JLabel());/** 空白 */
panel_buttons.add(btn_exit);
this.add(panel_table,BorderLayout.CENTER);
this.add(panel_buttons,BorderLayout.EAST);
this.setTitle("图书信息查询界面");
this.setIconifiable(true); /** 设置窗体是否可以最小化 */
this.setClosable(true); /** 内嵌窗体关闭 */
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); /** 设置窗体可以关闭,类型是隐藏自己,释放所占用内存 */
this.setSize(520, 500); /** 设置窗体大小 */
this.setVisible(true);
}
/** 定义一个显瘦图书数据的数据模型 */
private class BookDateModel implements TableModel{
/** 显示什么数据 */
private List<Book> book_list=null;
public void setBooks_list(List<Book> book_list){
this.book_list = book_list;
}
@Override
public int getRowCount() { /** 需要显示多少行 */
return book_list.size();
}
@Override
public int getColumnCount() { /** 显示多少列 */
return 4;
}
@Override /** select book_id,book_name,book_count,status from book,获取列名的方法 */
public String getColumnName(int columnIndex) { /** 根据行号,列号获取值 */
if (columnIndex==0) {
return "图书编号";
}else if (columnIndex==1)
{
return "图书名称";
}else if (columnIndex==2)
{
return "借阅次数";
}else if (columnIndex==3)
{
return "是否可借";
}else{
return "出错";
}
}
@Override
public Class<?> getColumnClass(int columnIndex) {
return String.class;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Book book=book_list.get(rowIndex);
if (columnIndex==0) {
return book.getBook_id();
}else if (columnIndex==1)
{
return book.getBook_name();
}else if (columnIndex==2)
{
return book.getBook_count();
}else if (columnIndex==3)
{
return book.getStatus()==1?"可借":"不可借";
}else{
return "出错";
}
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
}
@Override
public void addTableModelListener(TableModelListener l) {
}
@Override
public void removeTableModelListener(TableModelListener l) {
}
}
/** 给所有按钮注册侦听器 */
private void registerActionListener()
{
/** 给table控件注册侦听器 */
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
/** 获取用户选中图书的编号 */
int row_num=table.getSelectedRow();
book_id=(int) table.getValueAt(row_num, 0);
System.out.println("booK_id"+book_id);
}
});
/** 给借书按钮注册侦听器 */
btn_borrow.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean tmp=UsersBiz.borrowBook(user.getUser_id(),book_id);
if (tmp) {
JOptionPane.showMessageDialog(UserBookInquiry.this, "借阅成功");
}else{
JOptionPane.showMessageDialog(UserBookInquiry.this, "借阅不成功");
}
}
});
/** 给查询按钮注册侦听器 */
btn_search.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
List<Book> books=null;
int index=cb_type.getSelectedIndex();/** 获取下拉框选项的索引,从0开始 */
if (index==0) {
books=bookBiz.queryAll(); /** 查询全部书籍 */
}
if (index==1) {
books=bookBiz.queryHotBooks(); /** 查询热门图书信息 */
}
if (index==2) {
books=bookBiz.queryCanBorrowBooks(); /** 查询可借图书信息 */
}
if (index==3) {
books=bookBiz.queryNotCanBorrowBooks(); /** 查询不可借图书信息 */
}
refreshTable(books);
}
});
}
/** 定义一个刷新表的方法 */
private void refreshTable(List<Book> books)
{
BookDateModel dm = new BookDateModel();
dm.setBooks_list(books);/** 给书籍集合赋值,不然没有书籍可以显示 */
table.setModel(dm);/** 现在把模型(含有数据的模型)交给Table控件 */
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
图书借阅管理系统

共70个文件
class:28个
java:21个
jpg:8个


温馨提示
oracle数据库图书借阅管理系统。用户前台模块部分: 1.注册信息 2.用户登陆 3.查看所有图书信息 4.查看热门图书信息 5.查看可借图书信息 6.查看已借图书信息 7.查看本人所有借书记录 8.查看本人未归还图书记录 9.查看本人已归还图书记录 10.借书 11.还书 管理员后台模块部分: 1.用户登陆 2.查看所有图书信息 3.查看指定编号的图书信息 4.查看指定书名的图书信息 5.添加图书 6.删除图书 7.修改图书 8.查看指定用户的借书历史记录 9.查看指定图书的借出历史记录
资源推荐
资源详情
资源评论
























收起资源包目录



































































































共 70 条
- 1
资源评论

- weixin_451198812019-05-24请问这个是直接下载安装到手机上使用的吗?
- 陌生人ιτ2019-06-10不错,挺好的
- GANYOUQUAN2018-08-09不错,挺好的

不会敲代码的程序员
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- GOAT(山羊)是基于 LlaMa 进行 SFT 的中英文大语言模型
- 借助 ChatGPT 大语言模型通过聊天机器人自动搭建 vulhub 漏洞靶机环境
- 一个 JavaScript 的简单范例程序-创建一个简单的待办事项列表(Todo List)
- 第二届广州・琶洲算法大赛智能交通 CV 模型赛题第四名方案
- 第二届广州・琶洲算法大赛智能交通 CV 模型赛题第 4 名解决方案
- 基于ChatGPT大语言模型,通过聊天机器人自动创建vulhub的漏洞靶机环境
- Python 的排序算法范例程序-实现快速排序算法
- 从零开始编写大语言模型相关所有代码用于学习
- kindeditor多图上传H5版 ,替换到原来的plugins\multiimage目录下就可用,无须修改原来的调用代码,要记得刷新缓存
- CID解码最新300-CD软件
- CID解码最新300-CD软件
- 结合大模型强大的自然语言处理能力,自动化地生成全面、高质量的测试用例
- CID解码最新300-CD软件
- MATLAB实现NMEA 0183数据可视化工具
- MATLAB实现NMEA 0183数据可视化工具
- aspmkr7_1.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
