📄 borrowbook.java
字号:
package book;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.table.TableColumn;
//借书
public class BorrowBook extends Mb{
private JLabel icon,readerNumber, readerName,jBookNumber,zBookNumber,kBookNumber,hBookTime,readerBook;
private JLabel bookNumber, bookIsbn,bookName,bookPublish,bookType,bookPrice,remark;
private JTextField treaderNumber, treaderName,tjBookNumber,tzBookNumber,tkBookNumber,thBookTime;
private JTextField tbookNumber, tbookIsbn,tbookName,tbookPublish,tbookType,tbookPrice;
private JTextArea tremark;
private ButtonIcon ok,ok1,jie,close,quxiao;
private JScrollPane scrool,scrool1;
private Table table;
private PreparedStatement pstmt = null;
private NowEditableModel dtm;
private String cishu=null;
BorrowBook(String s, int i, int j) throws SQLException {
super(s, i, j);
con.setLayout(null);
shezhi();
add();
}
private void shezhi(){
table=new Table();
scrool = new JScrollPane(table);
scrool.setBounds(20, 350, 555, 125);
setLabel();
setTextField();
setButton();
}
//设置标签
void setLabel(){
icon=new JLabel(new ImageIcon("./data/image/heard/booksystem.jpg"));
icon.setBounds(20,5,550,50);
readerNumber = new JLabel("读者编号:");
readerNumber.setBounds(20, 60, 80, 18);
readerName=new JLabel("读者姓名:");
readerName.setBounds(180, 60, 80, 18);
zBookNumber=new JLabel("总借书次:");
zBookNumber.setBounds(380, 60, 80, 18);
jBookNumber=new JLabel("借出书数:");
jBookNumber.setBounds(180, 90, 80, 18);
kBookNumber=new JLabel("可借天数:");
kBookNumber.setBounds(380, 90, 80, 18);
hBookTime=new JLabel("应还日期:");
hBookTime.setBounds(380, 120, 80, 18);
bookNumber=new JLabel("图书编号:");
bookNumber.setBounds(20, 190, 80, 18);
bookIsbn=new JLabel("ISBN:");
bookIsbn.setBounds(20, 230, 80, 18);
bookName=new JLabel("图书名称:");
bookName.setBounds(180, 190, 80, 18);
bookPublish=new JLabel("出版社:");
bookPublish.setBounds(180, 220, 80, 18);
bookType=new JLabel("图书类别:");
bookType.setBounds(180, 250, 80, 18);
bookPrice=new JLabel("图书价格:");
bookPrice.setBounds(180, 280, 80, 18);
readerBook=new JLabel("读者已借图书信息");
readerBook.setBounds(210, 320, 150, 18);
remark=new JLabel("简介:");
remark.setBounds(395, 190, 80, 18);
}
//设置文本匡
void setTextField(){
treaderNumber=new JTextField();
treaderNumber.setBounds(20,90,120,18);
treaderName=new JTextField();
treaderName.setBounds(250, 60, 120, 18);
treaderName.setEnabled(false);
tzBookNumber=new JTextField();
tzBookNumber.setBounds(450, 60, 120, 18);
tzBookNumber.setEnabled(false);
tjBookNumber=new JTextField();
tjBookNumber.setBounds(250, 90, 120, 18);
tjBookNumber.setEnabled(false);
tkBookNumber=new JTextField();
tkBookNumber.setBounds(450, 90, 120, 18);
tkBookNumber.setEnabled(false);
thBookTime=new JTextField();
thBookTime.setBounds(450, 120, 120, 18);
thBookTime.setEnabled(false);
tbookNumber=new JTextField();
tbookNumber.setBounds(20, 210, 120, 18);
tbookIsbn=new JTextField();
tbookIsbn.setBounds(20, 250, 120, 18);
tbookIsbn.setEnabled(false);
tbookName=new JTextField();
tbookName.setBounds(250, 190, 120, 18);
tbookName.setEnabled(false);
tbookPublish=new JTextField();
tbookPublish.setBounds(250, 220, 120, 18);
tbookPublish.setEnabled(false);
tbookType=new JTextField();
tbookType.setBounds(250, 250, 120, 18);
tbookType.setEnabled(false);
tbookPrice=new JTextField();
tbookPrice.setBounds(250, 280, 120, 18);
tbookPrice.setEnabled(false);
tremark = new JTextArea();
tremark.setEnabled(false);
scrool1 = new JScrollPane(tremark);
scrool1.setBounds(450, 190, 120, 120);
}
void setButton(){
ok = new ButtonIcon("确定");
ok.setBounds(20, 120, 70, 25);
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
try {
MainDAO dao = new MainDAO();
if(!dao.Judge("select 读者编号 from duzheziliao", treaderNumber.getText(), "读者编号")){
JOptionPane.showMessageDialog(table, "此读者不存在,请确认读者编号是否正确!!");
readerClean();//检测读者是否存在
}
else
if(readerJudge()){//检测编号是否合法
ResultSet rs=null;
String str = "select 读者姓名,借出数量,已借数量,天数上限 from duzheziliao where 读者编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setString(1,treaderNumber.getText());
rs=pstmt.executeQuery();
if(rs.next()){
treaderName.setText(rs.getString("读者姓名"));
tzBookNumber.setText(rs.getString("借出数量"));
tjBookNumber.setText(String.valueOf(rs.getInt("已借数量")));
tkBookNumber.setText(rs.getString("天数上限"));
}
thBookTime.setText(getDate(Integer.parseInt(tkBookNumber.getText())));
rs.close();
dao.close();
table.Renovate("select * from jiechutushu where 读者编号="+treaderNumber.getText());//刷新Table表
okJudge();//检测图书和读者是否都已经输入 如过都已输入借书按钮可以点击
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
ok1 = new ButtonIcon("确定");//显示要借出的图书
ok1.setBounds(20, 280, 70, 25);
ok1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
try {
MainDAO dao = new MainDAO();
ResultSet rs=null;
if(bookJudge()){
String str = "select ISBN,图书名称,出版社,图书类别,价格,借出次数,简介 from tushuziliao where 图书编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setString(1,tbookNumber.getText());
rs=pstmt.executeQuery();
if(rs.next()){
tbookIsbn.setText(rs.getString("ISBN"));
tbookName.setText(rs.getString("图书名称"));
tbookPublish.setText(rs.getString("出版社"));
tbookType.setText(rs.getString("图书类别"));
tbookPrice.setText(String.valueOf(rs.getFloat("价格")));
cishu=String.valueOf(rs.getInt("借出次数"));
tremark.setText(rs.getString("简介"));
}
rs.close();
dao.close();
okJudge();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
jie = new ButtonIcon("借书");
jie.setBounds(300, 490, 70, 25);
jie.setEnabled(false);
jie.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
MainDAO dao;
try {
java.sql.Date nowTime= new java.sql.Date(Calendar.getInstance().getTime().getTime());
dao = new MainDAO();
String str = "insert into jiechutushu(图书编号,图书名称,读者编号,读者姓名,借书日期,应还日期,是否超期,经手人) values(?,?,?,?,?,?,?,?)";
pstmt = dao.getPreparedStatement(str);
pstmt.setInt(1,Integer.parseInt(tbookNumber.getText()));
pstmt.setString(2,tbookName.getText());
pstmt.setInt(3,Integer.parseInt(treaderNumber.getText()));
pstmt.setString(4,treaderName.getText());
pstmt.setDate(5,nowTime);
pstmt.setString(6,thBookTime.getText());
pstmt.setString(7,"否");
pstmt.setString(8,MainFrame.getUser());
pstmt.executeUpdate();//添家借书记录
pstmt.close();
dao.close();
readerAdd();
bookAdd();
JOptionPane.showMessageDialog(table, "借出成功!!!!请按时还书!");
allClean();
} catch (SQLException e) {
e.printStackTrace();
}
}
});
quxiao = new ButtonIcon("取消");
quxiao.setBounds(400, 490, 70, 25);
quxiao.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
allClean();
}
});
close = new ButtonIcon("关闭");
close.setBounds(500, 490, 70, 25);
close.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
close();
}
});
}
//检测读者借书是否上限
boolean readerJudge(){
boolean boo=false;
try {
int i = 0,j = 0;
ResultSet rs=null;
MainDAO dao = new MainDAO();
String str = "select 借书上限,已借数量 from duzheziliao where 读者编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setString(1,treaderNumber.getText());
rs=pstmt.executeQuery();
if(rs.next()){
i=Integer.parseInt(rs.getString("借书上限"));
j=rs.getInt("已借数量");
}
rs.close();
dao.close();
if(i-j==0){
JOptionPane.showMessageDialog(table, "此读者借书数量已满,请还书后在借!!");
readerClean();
}
else{
boo=true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return boo;
}
//检测图书是否存在,是否借出
boolean bookJudge() throws SQLException{
boolean boo = false;
String bl = null;
MainDAO dao = new MainDAO();
ResultSet rs=null;
if (!dao.Judge("select 图书编号 from tushuziliao", tbookNumber.getText(),
"图书编号")) {
JOptionPane.showMessageDialog(table, "此图书不存在,请确认图书编号输入是否正确!!");
bookClean();
}
else
{
String str = "select 是否借出 from tushuziliao where 图书编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setString(1,tbookNumber.getText());
rs=pstmt.executeQuery();
if(rs.next()){
bl=rs.getString("是否借出");
}
if(bl.equals("是")){
JOptionPane.showMessageDialog(table, "此图书已经借出,请确认输入的图书编号是否正确!!");
bookClean();
}
else{
boo=true;
}
}
return boo;
}
// 检测图书和读者是否都已经输入 如过都已输入借书按钮可以点击
void okJudge(){
if((!treaderName.getText().equals(""))&&(!tbookName.getText().equals(""))){
jie.setEnabled(true);
}
else{
jie.setEnabled(false);
}
}
//读者资料清空
void readerClean(){
treaderName.setText("");
tzBookNumber.setText("");
tjBookNumber.setText("");
tkBookNumber.setText("");
}
//图书资料清空
void bookClean(){
tbookIsbn.setText("");
tbookName.setText("");
tbookPublish.setText("");
tbookType.setText("");
tbookPrice.setText("");
tremark.setText("");
}
//全部清空
void allClean(){
treaderNumber.setText("");
treaderName.setText("");
tzBookNumber.setText("");
tjBookNumber.setText("");
tkBookNumber.setText("");
tbookNumber.setText("");
tbookIsbn.setText("");
tbookName.setText("");
tbookPublish.setText("");
tbookType.setText("");
tbookPrice.setText("");
tremark.setText("");
table.setModel(new NowEditableModel());//JTable表清空
table.updateUI();
jie.setEnabled(false);//借书按钮不可编辑
}
//获取增加i天后日期
private String getDate(int i){
Calendar cal = Calendar.getInstance();
java.util.Date myDate=new java.util.Date();
long myTime;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String mDateTime=formatter.format(cal.getTime());
String mDate=formatter.format(myDate);
myDate=new java.util.Date();
myTime=(myDate.getTime()/1000)+60*60*24*i;
myDate.setTime(myTime*1000);
mDate=formatter.format(myDate);
System.out.println(mDate);
return mDate;
}
//更新读者资料表,借出后借出数量和已借数量增加
void readerAdd() throws SQLException{
MainDAO dao = new MainDAO();
String str = "update duzheziliao set 借出数量=?,已借数量=? where 读者编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setString(1,String.valueOf(Integer.parseInt(tzBookNumber.getText())+1));
pstmt.setInt(2,Integer.parseInt(tjBookNumber.getText())+1);
pstmt.setInt(3,Integer.parseInt(treaderNumber.getText()));
pstmt.executeUpdate();
pstmt.close();
dao.close();
}
//更新图书资料,设置图书的借出次数和是否借出属性
void bookAdd() throws SQLException{
MainDAO dao = new MainDAO();
String str = "update tushuziliao set 是否借出=?,借出次数=? where 图书编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setString(1,"是");
pstmt.setInt(2,Integer.parseInt(tbookNumber.getText())+1);
pstmt.setInt(3,Integer.parseInt(tbookNumber.getText()));
pstmt.executeUpdate();
pstmt.close();
dao.close();
}
void add(){
con.add(icon);
con.add(readerNumber);
con.add(treaderNumber);
con.add(readerName);
con.add(treaderName);
con.add(zBookNumber);
con.add(tzBookNumber);
con.add(kBookNumber);
con.add(tkBookNumber);
con.add(jBookNumber);
con.add(tjBookNumber);
con.add(hBookTime);
con.add(thBookTime);
con.add(bookNumber);
con.add(tbookNumber);
con.add(bookIsbn);
con.add(tbookIsbn);
con.add(bookName);
con.add(tbookName);
con.add(bookPublish);
con.add(tbookPublish);
con.add(bookPrice);
con.add(tbookPrice);
con.add(bookType);
con.add(tbookType);
con.add(remark);
con.add(scrool);
con.add(scrool1);
con.add(readerBook);
con.add(ok);
con.add(ok1);
con.add(jie);
con.add(quxiao);
con.add(close);
//con.validate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -