⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 returnbook.java

📁 简单的书店管理系统,是课设期间教师指导完成的,希望会对大家有帮助!
💻 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 + -