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

📄 searchbook.java

📁 Java Swing写的图书馆管理系统
💻 JAVA
字号:
package library.iframe;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;

import library.DBConnectOperation.Dbo;
import library.model.Book;
import library.model.BookType;

public class SearchBook extends JInternalFrame {
	private JComboBox choice;
	private JTextField inputSearchCondition;
	private JButton queryButton;
	private JButton cancelButton;
	private JButton cancelButton_2;
	private JButton refreshButton;
	private ArrayList arrayList;
	private ArrayList arrayListAllBook;
	private JTable table_1;
	private JTable table_2;
	private Book book;
	private Book book_2;
	private final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
	private DefaultTableModel model_1=new DefaultTableModel();
	private DefaultTableModel model_2=new DefaultTableModel();
	private final String choiceStr[]={"图书名称","图书编号","图书作者"};
	private final String columnNames[]={ "图书编号", "分类", "名称", "作者", "译者","出版社",  "出版日期", "单价"};
	public SearchBook(){
		super();
		setBounds(100, 100, 530, 400);
		setTitle("图书查询");
		setClosable(true);
		setIconifiable(true);

		//设置卡片面板
		JTabbedPane tabbedPane=new JTabbedPane();
		//tabbedPane.setPreferredSize(new Dimension(100,50));
		getContentPane().add(tabbedPane);
		
		//添加第一个卡片面板
		JPanel panel_1=new JPanel();
		BorderLayout borderLayout_1=new BorderLayout();
		panel_1.setLayout(borderLayout_1);
		tabbedPane.addTab("条件查询", panel_1);
		
		//向第一个卡片面板中添加具有指定标题的面板
		JPanel panel_1_Up=new JPanel();
		//panel_1_Up.setPreferredSize(new Dimension(0,50));
		panel_1_Up.setBorder(new TitledBorder(null, "请选择查询项目"));
		panel_1.add(panel_1_Up,BorderLayout.NORTH);
		
		choice=new JComboBox();
		choice.addItem(choiceStr[0]);
		choice.addItem(choiceStr[1]);
		choice.addItem(choiceStr[2]);
		panel_1_Up.add(choice);
		inputSearchCondition=new JTextField(20);
		panel_1_Up.add(inputSearchCondition);
		
			
		//设置中央面板,用于结果显示
		JPanel panelCenter=new JPanel();
		panelCenter.setBorder(new TitledBorder(null,"查询结果"));
		panel_1.add(panelCenter);
		
		JScrollPane scrollPane_1=new JScrollPane();
		scrollPane_1.setPreferredSize(new Dimension(500,200));
		panelCenter.add(scrollPane_1);
		
		table_1=new JTable();
		table_1.setModel(model_1);
		model_1.setColumnIdentifiers(columnNames);
		scrollPane_1.setViewportView(table_1);
		
		//设置底部面板,用于添加相应按钮
		JPanel panelDown=new JPanel();
		FlowLayout flowLayout=new FlowLayout();
		flowLayout.setVgap(5);
		flowLayout.setHgap(15);
		panelDown.setLayout(flowLayout);
		panel_1.add(panelDown,BorderLayout.SOUTH);
		queryButton=new JButton();
		queryButton.setText("查询");
		queryButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				String selectItem=(String)choice.getSelectedItem();
				if(inputSearchCondition.getText().length()==0){
					JOptionPane.showMessageDialog(null,"查询条件不能为空!");
					return;
				}
				if(table_1.getRowCount()>0){
					while(model_1.getRowCount()!=0)
						model_1.removeRow(model_1.getRowCount()-1);
				}
				if(selectItem.equals("图书名称")){
					arrayList=Dbo.selectSpecifiedBook(inputSearchCondition.getText());
					if(arrayList.size()>0){	//查询结果不为空时
						for(int i=0;i<arrayList.size();i++){
							book=(Book)arrayList.get(i);
							addTableRow(book);
						}
					}
					else{
						JOptionPane.showMessageDialog(null, "要查询的图书没有找到!");
						inputSearchCondition.setText("");
						return;
					}
				}
				else if(selectItem.equals("图书编号")){
					book=Dbo.selectSpecifiedISBNBook(inputSearchCondition.getText());
					if(book!=null){
						addTableRow(book);
					}
					else{
						JOptionPane.showMessageDialog(null,"要查询的图书没有找到!");
						inputSearchCondition.setText("");
						return;
					}
				}
				else {
					arrayList=Dbo.selectSpecifiedWriterBook(inputSearchCondition.getText());
					if(arrayList.size()>0){
						for(int i=0;i<arrayList.size();i++){
							book=(Book)arrayList.get(i);
							addTableRow(book);
						}
					}
					else{
						JOptionPane.showMessageDialog(null,"要查找的图书没有找到!");
						inputSearchCondition.setText("");
						return;
					}
				}
			}
		});
		panelDown.add(queryButton);
		
		cancelButton=new JButton();
		cancelButton.setText("返回");
		cancelButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dispose();
			}
		});
		panelDown.add(cancelButton);

		//添加第二个面板
		JPanel panel_2=new JPanel();
		tabbedPane.addTab("显示所有图书信息", panel_2);
		
		JScrollPane scrollPane_2=new JScrollPane();
		scrollPane_2.setPreferredSize(new Dimension(500,290));
		panel_2.add(scrollPane_2);
		table_2=new JTable();
		table_2.setModel(model_2);
		model_2.setColumnIdentifiers(columnNames);
		scrollPane_2.setViewportView(table_2);
		
		arrayListAllBook=Dbo.selectAllBook();
		//System.out.println(arrayListAllBook.size());
		if(arrayListAllBook.size()>0){
			for(int i=0;i<arrayListAllBook.size();i++){
				book_2=(Book) arrayListAllBook.get(i);
				addTableRow_2(book_2);
			}
		}
		
		//添加第二个面板的下面板,用于添加按钮
		JPanel panelDown_2=new JPanel();
		FlowLayout flowLayout_2=new FlowLayout();
		flowLayout_2.setHgap(15);
		flowLayout_2.setVgap(5);
		panelDown_2.setLayout(flowLayout);
		panel_2.add(panelDown_2,BorderLayout.SOUTH);
		refreshButton=new JButton();
		refreshButton.setText("刷新");
		refreshButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				if(table_2.getRowCount()>0){
					while(table_2.getRowCount()>0)
						model_2.removeRow(table_2.getRowCount()-1);
					arrayListAllBook=Dbo.selectAllBook();
					if(arrayListAllBook.size()>0){
						for(int i=0;i<arrayListAllBook.size();i++){
							book_2=(Book) arrayListAllBook.get(i);
							addTableRow_2(book_2);
						}
					}
				}
			}
		});
		panelDown_2.add(refreshButton);
		cancelButton_2=new JButton();
		cancelButton_2.setText("返回");
		cancelButton_2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dispose();
			}
		});
		panelDown_2.add(cancelButton_2);
		setVisible(true);
	}
	
	public void addTableRow(Book book){
		BookType bookType;
		String[] str=new String[8];
		str[0]=book.getISBN();
		bookType=Dbo.selectSelectedBookCategory(book.getTypeid());//获取该图书的读书类别
		str[1]=bookType.getTypeName();
		str[2]=book.getBookname();
		str[3]=book.getWriter();
		str[4]=book.getTranslator();
		str[5]=book.getPublisher();
		try {
			format.parse(book.getDate());
			str[6]=format.format(format.parse(book.getDate()));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		str[7]=new Float(book.getPrice()).toString();
		model_1.addRow(str);
	}
	public void addTableRow_2(Book book){
		BookType bookType;
		String[] str=new String[8];
		str[0]=book.getISBN();
		bookType=Dbo.selectSelectedBookCategory(book.getTypeid());//获取该图书的读书类别
		str[1]=bookType.getTypeName();
		str[2]=book.getBookname();
		str[3]=book.getWriter();
		str[4]=book.getTranslator();
		str[5]=book.getPublisher();
		try {
			format.parse(book.getDate());
			str[6]=format.format(format.parse(book.getDate()));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		str[7]=new Float(book.getPrice()).toString();
		model_2.addRow(str);
	}
}

⌨️ 快捷键说明

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