📄 searchbook.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 + -