📄 returnbook.java
字号:
package book;
import java.awt.Color;
import java.awt.HeadlessException;
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;
public class ReturnBook extends Mb {
private JLabel icon,bookNumber,bookName,readerNumber,readerName,jbookTime,yhbookTime,readerBook,chaoTime,jsr,chaoqi;
private JTextField tbookNumber,tbookName,treaderNumber,treaderName,tjbookTime,tyhbookTime,tchaoTime,tjsr,tchaoqi;
private ButtonIcon ok,huan,close,quxiao;
private JScrollPane scrool;
private Table table;
private PreparedStatement pstmt = null;
private int number;//记录借书编号
ReturnBook(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, 200, 555, 125);
setLabel();
setTextField();
setButton();
}
void setLabel(){
icon=new JLabel(new ImageIcon("./data/image/heard/huanshu.jpg"));
icon.setBounds(20,5,550,50);
bookNumber=new JLabel("图书编号:");
bookNumber.setBounds(20, 60, 80, 18);
readerNumber=new JLabel("读者编号:");
readerNumber.setBounds(22, 100, 80, 18);
bookName=new JLabel("图书名称:");
bookName.setBounds(180, 60, 80, 18);
readerName=new JLabel("读者姓名:");
readerName.setBounds(180, 90, 80, 18);
jbookTime=new JLabel("借书日期:");
jbookTime.setBounds(180, 120, 80, 18);
readerBook=new JLabel("读者已借图书信息");
readerBook.setBounds(210, 180, 150, 18);
yhbookTime=new JLabel("应还日期:");
yhbookTime.setBounds(180, 150, 80, 18);
chaoTime=new JLabel("是否超期:");
chaoTime.setBounds(400, 60, 80, 18);
chaoqi=new JLabel("超期天数:");
chaoqi.setBounds(400, 90, 80, 18);
jsr=new JLabel("经手人:");
jsr.setBounds(400, 120, 80, 18);
}
void setTextField(){
tbookNumber=new JTextField();
tbookNumber.setBounds(20, 80, 120, 18);
treaderNumber=new JTextField();
treaderNumber.setBounds(20, 120, 120, 18);
treaderNumber.setEnabled(false);
tbookName=new JTextField();
tbookName.setBounds(250, 60, 120, 18);
tbookName.setEnabled(false);
treaderName=new JTextField();
treaderName.setBounds(250, 90, 120, 18);
treaderName.setEnabled(false);
tjbookTime=new JTextField();
tjbookTime.setBounds(250, 120, 120, 18);
tjbookTime.setEnabled(false);
tyhbookTime=new JTextField();
tyhbookTime.setBounds(250, 150, 120, 18);
tyhbookTime.setEnabled(false);
tchaoTime=new JTextField();
tchaoTime.setBounds(470,60,120,18);
tchaoTime.setEnabled(false);
tchaoqi=new JTextField();
tchaoqi.setBounds(470,90,120,18);
tchaoqi.setEnabled(false);
tjsr=new JTextField();
tjsr.setBounds(470,120,120,18);
tjsr.setEnabled(false);
}
void setButton(){
ok = new ButtonIcon("确定");
ok.setBounds(20, 150, 70, 25);
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
try {
MainDAO dao=new MainDAO();
if(judge()){
huan.setEnabled(true);
ResultSet rs=null;
String str = "select * from jiechutushu where 图书编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setInt(1,Integer.parseInt(tbookNumber.getText()));
rs=pstmt.executeQuery();
if(rs.next()){
treaderNumber.setText(rs.getString("读者编号"));
tbookName.setText(rs.getString("图书名称"));
treaderName.setText(rs.getString("读者姓名"));
tjbookTime.setText(rs.getString("借书日期"));
tyhbookTime.setText(rs.getString("应还日期"));
tchaoqi.setText(cTime(tyhbookTime.getText()));
if(Integer.parseInt(tchaoqi.getText())>0){
tchaoTime.setText("是");
setChaoTime();//设置图书超期
}
else{
tchaoTime.setText("否");
}
tjsr.setText(rs.getString("经手人"));
number=rs.getInt("借书编号");
table.Renovate("select * from jiechutushu where 读者编号="+treaderNumber.getText());
}
rs.close();
dao.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
huan = new ButtonIcon("还书");
huan.setBounds(300, 340, 70, 25);
huan.setEnabled(false);
huan.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
try {
//选择是否现在进行处罚
String str1="未超期";
boolean boo=false;
MainDAO dao=new MainDAO();
if(tchaoTime.getText().equals("是")){
boo=addChao();
if(boo){
str1="已处罚";
}
else{
str1="未处罚";
}
addFaKuan(str1);
}
//添加还书记录
java.sql.Date nowTime= new java.sql.Date(Calendar.getInstance().getTime().getTime());
dao = new MainDAO();
String str = "insert into huanshujilu(读者编号,读者姓名,图书编号,图书名称,借书日期,还书日期,超期天数,是否罚款,经手人) values(?,?,?,?,?,?,?,?,?)";
pstmt = dao.getPreparedStatement(str);
pstmt.setInt(1,Integer.parseInt(treaderNumber.getText()));
pstmt.setString(2,treaderName.getText());
pstmt.setInt(3,Integer.parseInt(tbookNumber.getText()));
pstmt.setString(4,tbookName.getText());
pstmt.setString(5,tjbookTime.getText());
pstmt.setDate(6,nowTime);
pstmt.setInt(7,Integer.parseInt(tchaoqi.getText()));
pstmt.setString(8,str1);
pstmt.setString(9,MainFrame.getUser());
pstmt.executeUpdate();
pstmt.close();
dao.close();
delBook();//修改图书是否借出数据
delReader();//修改读者借出书数量
delBorrowBook();//删除借出图书
allClean();//清空
JOptionPane.showMessageDialog(table, "已成功还书!!!");
} catch (SQLException e) {
e.printStackTrace();
}
}
});
quxiao = new ButtonIcon("取消");
quxiao.setBounds(400, 340, 70, 25);
quxiao.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
allClean();
}
});
close = new ButtonIcon("关闭");
close.setBounds(500, 340, 70, 25);
close.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
close();
}
});
}
//检测图书是否存在,是否借出
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, "此图书不存在,请确认图书编号输入是否正确!!");
allClean();
}
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, "此图书已经借出,请确认输入的图书编号是否正确!!");
allClean();
}
else{
boo=true;
}
}
dao.close();
pstmt.close();
return boo;
}
void allClean(){
tbookNumber.setText("");
treaderNumber.setText("");
tbookName.setText("");
treaderName.setText("");
tjbookTime.setText("");
tyhbookTime.setText("");
tchaoTime.setText("");
tchaoqi.setText("");
tjsr.setText("");
huan.setEnabled(false);
table.setModel(new NowEditableModel());
table.updateUI();
}
//检测图书编号是否合法
boolean judge() throws HeadlessException, SQLException{
boolean boo=true;
MainDAO dao = new MainDAO();
char b[] = tbookNumber.getText().toCharArray();
for (int i = 0; i < b.length; i++) {
if (!(Character.isDigit(b[i]))) {
boo = false;
}
}
if(!boo){
JOptionPane.showMessageDialog(table, "图书编号只能是数字!!");
}
if(boo){
if (!dao.Judge("select 图书编号 from jiechutushu", tbookNumber
.getText(), "图书编号")) {
boo = false;
JOptionPane.showMessageDialog(table, "此书并未借出,请确认输入是否正确!!");
}
}
return boo;
}
//检测读者是否超期
boolean addChao() throws SQLException{
boolean boo=false;
float m = 0,sum;
m=this.getDay();
sum = m*Integer.parseInt(tchaoqi.getText());
int n = JOptionPane.showConfirmDialog(this, "此读者超期"+tchaoqi.getText()+"天,应罚款"+String.valueOf(sum)+"元。是否现在进行处罚?", "退出",
JOptionPane.YES_NO_OPTION);
if(n==0){
boo=true;
}
return boo;
}
//获取日滞纳金
float getDay() throws SQLException{
MainDAO dao=new MainDAO();
ResultSet rs=null;
float m = 0;
//获取日滞纳金
String str = "select * from zhinajin";
pstmt = dao.getPreparedStatement(str);
rs=pstmt.executeQuery();
if(rs.next()){
m=rs.getFloat("日滞纳金");
}
dao.close();
pstmt.close();
return m;
}
//返回超期多少天
String cTime(String time){
int year,month,day;
year=Integer.parseInt(time.substring(0,4));
month=Integer.parseInt(time.substring(5,7));
day=Integer.parseInt(time.substring(8,10));
if(!(month==0)){
month--;
}
Calendar calendar=Calendar.getInstance();
calendar.set(year,month,day);
long time1=calendar.getTimeInMillis();
calendar.setTime(new Date());
long time2=calendar.getTimeInMillis();
long xtime=(time2-time1)/(1000*60*60*24);
return String.valueOf(xtime);
}
// 如果图书超期、 设置属性超期
void setChaoTime() throws SQLException{
MainDAO dao = new MainDAO();
String str = "update jiechutushu set 是否超期=? where 图书编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setString(1,"是");
pstmt.setInt(2,Integer.parseInt(tbookNumber.getText()));
pstmt.executeUpdate();
pstmt.close();
dao.close();
}
//修改图书是否借出
void delBook() 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()));
pstmt.executeUpdate();
pstmt.close();
dao.close();
}
//修改读者已借数量
void delReader() throws SQLException{
MainDAO dao = new MainDAO();
String str = "update duzheziliao set 已借数量=已借数量-1 where 读者编号=?";
pstmt = dao.getPreparedStatement(str);
pstmt.setInt(1,Integer.parseInt(treaderNumber.getText()));
pstmt.executeUpdate();
pstmt.close();
dao.close();
}
//删除借出记录
void delBorrowBook(){
try {
MainDAO dao=new MainDAO();
dao = new MainDAO();
String str;
str = "delete from jiechutushu where 借书编号="
+ number;
dao.del(str);
dao.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
//添加罚款记录
void addFaKuan(String str) throws SQLException{
MainDAO dao = new MainDAO();
float day=this.getDay();
float sum=day*Integer.parseInt(tchaoqi.getText());
String str1 = "insert into fakuanbiao(读者编号,读者姓名,图书编号,图书名称,一天滞纳,超期天数,应罚,是否已罚,经手人) values(?,?,?,?,?,?,?,?,?)";
pstmt = dao.getPreparedStatement(str1);
pstmt.setInt(1,Integer.parseInt(treaderNumber.getText()));
pstmt.setString(2,treaderName.getText());
pstmt.setInt(3,Integer.parseInt(tbookNumber.getText()));
pstmt.setString(4,tbookName.getText());
pstmt.setFloat(5,(float)day);
pstmt.setString(6,tchaoqi.getText());
pstmt.setFloat(7,(float)sum);
pstmt.setString(8,str);
pstmt.setString(9,MainFrame.getUser());
pstmt.executeUpdate();
pstmt.close();
dao.close();
}
void add(){
con.add(icon);
con.add(bookNumber);
con.add(tbookNumber);
con.add(bookName);
con.add(tbookName);
con.add(readerNumber);
con.add(treaderNumber);
con.add(readerName);
con.add(treaderName);
con.add(jbookTime);
con.add(tjbookTime);
con.add(yhbookTime);
con.add(tyhbookTime);
con.add(chaoTime);
con.add(tchaoTime);
con.add(chaoqi);
con.add(tchaoqi);
con.add(jsr);
con.add(tjsr);
con.add(scrool);
con.add(readerBook);
con.add(ok);
con.add(huan);
con.add(quxiao);
con.add(close);
con.validate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -