/*
* Created by JFormDesigner on Sat Dec 31 12:54:54 CST 2022
*/
package AdministratorView;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import Dao.BookDao;
import Dao.BookTypeDao;
import Moudle.Book;
import Moudle.BookType;
import Util.DataBaseUtil;
import Util.IsValueUser;
import javax.swing.*;
import javax.swing.GroupLayout;
import javax.swing.table.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;
/**
* @author MaYiA
*/
public class BookMangerFrame extends JFrame {
public BookMangerFrame() {
initComponents();
}
//查询书籍事件
private void searchbook(ActionEvent e) {
bookSearchActionPerformed(e);
}
/**
* 查询书籍事件处理
* @param e
*/
private void bookSearchActionPerformed(ActionEvent e) {
//获取查询的条件
String bookName=s_bookNameTxt.getText(); //图书名称
String author=s_authorTxt.getText(); //图书作者
String bookTypeName=s_bookTypeJcb.getSelectedItem().toString(); //图书类别
//对图书类别"请选择..."换成""
if("请选择图书类别".equals(bookTypeName)){
bookTypeName="";
}
//生成带有条件的图书对象
Book book=new Book();
book.setBookName(bookName); //设置图书名称条件
book.setAuthor(author); //设置图书作者条件
book.setBookTypeName(bookTypeName); //设置图书类别条件
//调用table填充函数,根据查询结果重新填充表格
this.fillTable(book);
}
//表格点击事件
private void bookTableMousePressed(MouseEvent e) {
bookTableActionMousePressed(e);
}
/**
* 表格行点击事件处理
* @param e
*/
private void bookTableActionMousePressed(MouseEvent e) {
int row = this.bookTable.getSelectedRow();
this.idTxt.setText((String)bookTable.getValueAt(row,0));
this.bookNameTxt.setText((String)bookTable.getValueAt(row,1));
this.authorTxt.setText((String)bookTable.getValueAt(row,2));
String sex = (String) bookTable.getValueAt(row,3);
if ("男".equals(sex)) {
this.manJrb.setSelected(true);
} else if ("女".equals(sex)) {
this.femaleJrb.setSelected(true);
}
this.priceTxt.setText((Float)bookTable.getValueAt(row,4) + "");
this.bookDescTxt.setText((String)bookTable.getValueAt(row,5));
String bookTypeName = (String) this.bookTable.getValueAt(row,6);
int num = this.bookTypeJcb.getItemCount();
for (int i = 0;i < num;i++) {
BookType item=(BookType)this.bookTypeJcb.getItemAt(i);
if (item.getBookTypeName().equals(bookTypeName)) {
this.bookTypeJcb.setSelectedIndex(i);
}
}
}
//修改书籍事件
private void bookUpDate(ActionEvent e) {
bookUpDateAvtionPerformed(e);
}
/**
* 图书修改事件处理
* @param e
*/
private void bookUpDateAvtionPerformed(ActionEvent e) {
String id = this.idTxt.getText();
if (IsValueUser.isEmpty(id)) {
JOptionPane.showMessageDialog(null,"请选择要修改的记录!");
return;
}
String bookName = this.bookNameTxt.getText();
String author = this.authorTxt.getText();
String sex= null;
if (manJrb.isSelected()) {
sex = "男";
} else if (femaleJrb.isSelected()) {
sex = "女";
}
String price = this.priceTxt.getText();
String bookDesc = this.bookDescTxt.getText();
if (IsValueUser.isEmpty(bookName)) {
JOptionPane.showMessageDialog(null,"图书名称不能为空!");
return;
}
if (IsValueUser.isEmpty(author)) {
JOptionPane.showMessageDialog(null,"图书作者不能为空!");
return;
}
if (IsValueUser.isEmpty(price)) {
JOptionPane.showMessageDialog(null,"图书价格不能为空!");
return;
}
BookType bookType = (BookType) bookTypeJcb.getSelectedItem();
int bookTypeId = bookType.getId();
Book book = new Book(Integer.parseInt(id),bookName,author,sex,Float.parseFloat(price),bookTypeId,bookDesc);
Connection connection =null;
try {
connection = dataBaseUtil.getCon();
int addNum = bookDao.upDate(connection,book);
if (addNum == 1) {
JOptionPane.showMessageDialog(null,"图书修改成功!");
resetValue();
this.fillTable(new Book());
} else {
JOptionPane.showMessageDialog(null,"图书修改失败!");
}
} catch (Exception evt) {
evt.printStackTrace();
JOptionPane.showMessageDialog(null,"图书修改失败!");
} finally {
try {
dataBaseUtil.closeCon(connection);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
}
//图书删除事件
private void deleteBook(ActionEvent e) {
bookDeleteActionPerformed(e);
}
/**
* 图书删除事件处理
* @param e
*/
private void bookDeleteActionPerformed(ActionEvent e) {
String id =idTxt.getText();
if (IsValueUser.isEmpty(id)) {
JOptionPane.showMessageDialog(null,"请选择要删除的记录:");
return;
}
int n = JOptionPane.showConfirmDialog(null,"确定要删除该记录吗?");
if (n == 0) {
Connection connection = null;
try {
connection = dataBaseUtil.getCon();
int deleteNum = bookDao.delete(connection,id);
if (deleteNum == 1) {
JOptionPane.showMessageDialog(null,"删除成功!");
this.resetValue();
this.fillTable(new Book());
} else {
JOptionPane.showMessageDialog(null,"删除失败!");
}
} catch (Exception evt) {
evt.printStackTrace();
JOptionPane.showMessageDialog(null,"修改 失败!");
}finally {
try {
dataBaseUtil.closeCon(connection);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
}
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents @formatter:off
scrollPane1 = new JScrollPane();
bookTable = new JTable();
label1 = new JLabel();
s_bookNameTxt = new JTextField();
label2 = new JLabel();
s_authorTxt = new JTextField();
label3 = new JLabel();
s_bookTypeJcb = new JComboBox();
button1 = new JButton();
panel1 = new JPanel();
label4 = new JLabel();
idTxt = new JTextField();
label5 = new JLabel();
label6 = new JLabel();
bookNameTxt = new JTextField();
manJrb = new JRadioButton();
femaleJrb = new JRadioButton();
label7 = new JLabel();
authorTxt = new JTextField();
label8 = new JLabel();
priceTxt = new JTextField();
label9 = new JLabel();
label10 = new JLabel();
bookTypeJcb = new JComboBox();
scrollPane2 = new JScrollPane();
bookDescTxt = new JTextArea();
button2 = new JButton();
button3 = new JButton();
//======== this ========
setTitle("\u56fe\u
基于JavaSwing的图书管理系统
需积分: 0 138 浏览量
更新于2023-01-03
收藏 5.61MB ZIP 举报
【JavaSwing】是Java平台上的图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。JavaSwing提供了丰富的组件库,用于创建桌面应用,如按钮、文本框、菜单等。在"基于JavaSwing的图书管理系统"中,Swing被用来构建系统界面,提供用户友好的交互体验。
【图书管理系统】通常包含多个功能模块,如管理员模块和用户模块。管理员模块是系统的核心部分,负责维护系统的数据和功能。在本项目中,管理员可以进行图书类别的管理和图书的管理,包括增删改查等基本操作。
【图书类别管理】涉及对图书分类的维护。管理员可以添加新的类别,比如小说、科技、历史等,并能根据需要删除或修改这些类别。这需要数据库的支持,因此涉及到数据库设计和操作。
【图书管理】则涵盖了图书信息的管理,如书名、作者、出版社、出版日期等。管理员可以添加新图书到系统,同时对已有图书的信息进行更新或删除,确保图书数据的准确性和完整性。
【MySQL】是常用的开源关系型数据库管理系统,用于存储和检索图书管理系统的数据。在这个项目中,MySQL可能被用作后端数据库,存储图书类别和图书信息等数据。
【JDBC】(Java Database Connectivity)是Java连接数据库的标准API,它允许Java程序与各种数据库进行通信。在JavaSwing应用中,JDBC被用来建立Java程序与MySQL数据库之间的连接,执行SQL语句,实现数据的增删改查操作。
【IntelliJ IDEA】是一款强大的Java集成开发环境,支持多种编程语言,包括Java。在这个项目中,IntelliJ IDEA20可能是开发人员选择的IDE,提供代码编辑、调试、版本控制等功能,提高了开发效率。
【图书】在系统中是核心实体,代表了实际的书籍。在数据库中,图书通常会有一张对应的表,包含所有相关属性。在代码层面,可能有一个Book类来封装这些属性,并提供相应的操作方法。
这个项目通过JavaSwing实现了图书管理系统的前端界面,利用MySQL作为数据存储,通过JDBC进行数据库操作。开发者使用IntelliJ IDEA作为开发工具,使得整个开发过程更为高效。书名为"Book"的文件可能包含了图书相关的类定义或者数据文件,是系统的重要组成部分。通过这个项目,学生可以深入理解Java GUI编程、数据库设计以及对象-关系映射等概念,提升软件开发能力。
ᝰꫛꫀꪝღ
- 粉丝: 0
- 资源: 1
最新资源
- 焊接烟尘的产生与治理 - .pdf
- 焊接循环冷却水处理初探.pdf
- 焊接演示台升降系统SolidWorks仿真及动作功能分析.pdf
- 焊接冶金学课程改革与教学实践 - .pdf
- 焊接应力和变形的分析与探讨 - .pdf
- 焊接应力和焊接变形控制.pdf
- 焊接冶金原理1992.pdf
- 机械设计多种玻璃面板下料桁架sw16全套设计资料100%好用.zip
- 群星内核和平-PUBG通用版2.0.zip
- 基于 Java 的简单图形验证码识别全部资料+详细文档+高分项目.zip
- aC服务器开发精髓源代码最新版本
- 毕业设计-基于Opencv的车牌识别系统全部资料+详细文档+高分项目.zip
- 基于BERT+BiLSTM+CRF实现中文命名实体识别全部资料+详细文档+高分项目.zip
- 基于BERT的中文命名实体识别全部资料+详细文档+高分项目.zip
- 基于BP神经网络的车牌识别系统全部资料+详细文档+高分项目.zip
- 基于chrome的语音识别输入框全部资料+详细文档+高分项目.zip