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

📄 bookreturnframe.java

📁 书籍管理系统
💻 JAVA
字号:
/**********************************
 * FileName:BookReturnFrame.java
 * Function:跟据书本归还图书
 * Time:2004 1.11
 *********************************/

import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.sql.*; 

class BookReturnFrame extends Frame implements ActionListener 
{   
	Panel topPanel = new Panel ();
	Label lbBookID = new Label ("书本ID");
	Label lbResult  = new Label ("结果提示");
	TextField tfBookID = new TextField (20);
	TextField tfResult = new TextField (50);
	Button butQuery = new Button("查询");
	Button butReturn = new Button("归还");
	Button butClear = new Button ("清空");
	Button butExit = new Button ("退出");
	JTable tbBBResult;
	JScrollPane tbPane1;
	private Vector vect = new Vector ();
	String labels[] = {"书本ID","读者ID","读者姓名","借阅日期"};
    ConDB conUserQuery= new ConDB();

	BookReturnFrame()
	{
		setTitle("图书归还窗口");
		BorderLayout gbLayout = new BorderLayout();
		setLayout(gbLayout);
		tbBBResult = new JTable(tm);
	    tbBBResult.setToolTipText("图书借阅记录");
	    tbBBResult.setCellSelectionEnabled(false);
	    tbBBResult.setShowVerticalLines(true);
	    tbBBResult.setShowHorizontalLines(true);
	    tbPane1 = new  JScrollPane(tbBBResult);
		
		
		//面板topPanel设置
		topPanel.setLayout(new GridLayout(1,3));
	    topPanel.add(lbBookID);
	    topPanel.add(tfBookID);
	    topPanel.add(butQuery);
		topPanel.add(butReturn);
		topPanel.add(butClear);
	    topPanel.add(butExit); 
		topPanel.add(lbResult);
		topPanel.add(tfResult);
		tfResult.setEditable (false);
	   
	    add("North",topPanel);
	    add("Center",tbPane1);
		butQuery.addActionListener (this);
		butReturn .addActionListener (this);
		butClear.addActionListener (this);
	    butExit.addActionListener (this);
	    this.setVisible (true);
	    this.setSize(900,600);
	    this.setResizable (false);
		this.setLocation (100,100);	
		
	    addWindowListener(new WindowAdapter() 
	   {
		  public void windowClosing(WindowEvent e) 
        	{
               System.exit (0);
        	}
      	 });
		openDB();
	 
	}//end of new UserQueryFrame()
	
	
	//设定数据
        //声明一个类AbstractTableModel对象
        //实现AbstractTableModel对象tm中的方法
      AbstractTableModel tm= new AbstractTableModel() 
		{
			//取得表格列数
			public int getColumnCount() { return labels.length; }
            //取得表格行数
			public int getRowCount() { return vect.size();}
            //取得单元格中的属性值
			public Object getValueAt(int arow, int acol) 
			{ 
				Vector row = (Vector)vect.elementAt(arow);
	            return row.elementAt(acol);
			 }
			//设置表格列名
		   public  String getColumnName(int column)
			{
			   if (labels[column] != null) 
			   {
            	  return labels[column];
        		}
			
			   else 
			  {
				   return "";
        		
			   }
		    }
			
			//数据模型不可编辑,该方法设置为空
			public void setValueAt(Object value,int arow,int acol){  }
			
			//public void fireTableStructureChanged(){};
		    //取得列所属对象类
			public  Class getColumnClass(int column)
			{
      	        int type;
      	        try {
      	            type = conUserQuery.rs.getMetaData().getColumnType(column+1);
      	        }
      	        catch (SQLException e) {
      	            return super.getColumnClass(column);
      	        }
      
      	        switch(type) {
      	        case Types.CHAR:
      	        case Types.VARCHAR:
      	        case Types.LONGVARCHAR:
      	            return String.class;
      
      	        case Types.BIT:
      	            return Boolean.class;
      
      	        case Types.TINYINT:
      	        case Types.SMALLINT:
      	        case Types.INTEGER:
      	            return Integer.class;
      
      	        case Types.BIGINT:
      	            return Long.class;
      
      	        case Types.FLOAT:
      	        case Types.DOUBLE:
      	            return Double.class;
      
      	        case Types.DATE:
      	            return java.sql.Date.class;
      
      	        default:
      	            return Object.class;
      	        }
      	    }
		  //设置单元格不可编辑,为缺省实现
		  public  boolean isCellEditable(int row,int column)
		  {
			return false;
		  }

			
		};//end of new AbstractTableModel()  
	
	private void borrowQuery()
	{
 	    String bookID = tfBookID.getText ();
		try{
		    int bID = Integer.parseInt (bookID);
			ResultSetMetaData rsmd = conUserQuery.rs.getMetaData();
	        conUserQuery.stm = conUserQuery.con.createStatement();
			conUserQuery.rs = conUserQuery.stm.executeQuery("select * from borrow where bookid ='"+bID+"'");
		  
		   //初始化向量对象
		   vect.removeAllElements();
		  //更新表格内容
		  tm.fireTableStructureChanged();
         
		  while(conUserQuery.rs.next())
		  {
			Vector rec_vector = new Vector();
			for(int i =1; i<=rsmd.getColumnCount(); i++)
			{
				//从结果集中取数据放入向量rec_vector中
				rec_vector.addElement(conUserQuery.rs.getObject(i));
			}
			
			//向量rec_vector加入向量vect中
			vect.addElement(rec_vector);
		 }
		
		//更新表格,显示向量vect的内容		
		tm.fireTableStructureChanged();
		//查询完成后,关闭该SQL
		conUserQuery.stm.close();
		//重新执行SQL
		openDB();

   	}
		catch(NumberFormatException e)
		{
			tfResult.setText("书ID为空或输入格式有误");
		}
		catch(Exception e)
		{
		   System.out.print("Error in Query Data." + e);
   		   System.exit(1); 
   	   }
  }// end of private void dataQuery()


   //打开表
   private void openDB() 
   {
	   try
	   {
		   conUserQuery.stm = conUserQuery.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
		   conUserQuery.rs = conUserQuery.stm.executeQuery("select * from borrow");
		   conUserQuery.rs.first();
 
	   }
	   catch(Exception e)
	   {
		   System.out.print("Error in open table." + e);
		   System.exit(1); 
   	
	   }
   } // end of private void openDB() 
   
   private void deleteData()
   {
	   String bookID = tfBookID.getText ();
	   try
	   {
		   int bID = Integer.parseInt (bookID);
		   String sql ="delete from borrow where bookid ='"+bID+"'";
		   conUserQuery.stm = conUserQuery.con.createStatement();
		   if(conUserQuery.stm.executeUpdate(sql) == 1)
		   {
			   tfResult.setText ("归还成功");
		   }
		  
	   }
	   catch(NumberFormatException e)
	   {
		   tfResult.setText("输入格式有误或书本ID不对");
	   }
	   catch(SQLException e)
	   {
		   System.out.print("Error in Delete Data." + e);
   		   System.exit(1);
	   }
   }//end of deleteData()
	
	public void actionPerformed(ActionEvent e)
	{
		
		if(e.getActionCommand () == "查询")
			borrowQuery();
		if(e.getActionCommand () == "归还")
		    deleteData();
		if(e.getActionCommand ()=="清空")
		{
			tfBookID.setText ("");
			tfResult.setText ("");
		}
		if(e.getActionCommand () == "退出")
			dispose ();
	   
	}
}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -