📄 borrowbooklist.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.table.*;
import java.util.Vector;
public class BorrowBookList
extends JFrame
implements ActionListener {
DataBaseManager db = new DataBaseManager();
ResultSet rs;
Container c;
JPanel panel1, panel2,panel3;
JLabel bookNameLabel, studentNameLabel;
JTextField bookNameTextField, studentNameTextField;
JButton searchBtn, exitBtn;
JTable table = null;
DefaultTableModel defaultModel = null;
public BorrowBookList() {
super("读者借阅信息查询!");
c = getContentPane();
c.setLayout(new BorderLayout());
bookNameLabel = new JLabel("书名", JLabel.CENTER);
studentNameLabel = new JLabel("借阅者", JLabel.CENTER);
bookNameTextField = new JTextField(15);
studentNameTextField = new JTextField(15);
searchBtn = new JButton("查询");
exitBtn = new JButton("退出");
searchBtn.addActionListener(this);
exitBtn.addActionListener(this);
Box box1 = Box.createHorizontalBox();//box类可以创建几种不同类型的布局
box1.add(studentNameLabel);
box1.add(studentNameTextField);
box1.add(searchBtn);
Box box2 = Box.createHorizontalBox();
box2.add(bookNameLabel);
box2.add(bookNameTextField);
box2.add(exitBtn);
Box boxH = Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(Box.createVerticalGlue());//返回包含的组件有相同固定大小
panel1 = new JPanel();
panel1.add(boxH);
panel2 = new JPanel();
String[] name = {
"学号", "姓名", "类型","书号","书名","借阅日期", "应还日期","还书日期", "备注"};
String[][] data = new String[0][0];
defaultModel = new DefaultTableModel(data, name);
table = new JTable(defaultModel);
table.setPreferredScrollableViewportSize(new Dimension(600, 100));//Dimension 类封装单个对象中组件的宽度和高度
JScrollPane s = new JScrollPane(table);
panel2.add(s);
c.add(panel1, BorderLayout.NORTH);
c.add(panel2, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == exitBtn) {//退出
db.closeConnection();
this.dispose();
}
else if (e.getSource() == searchBtn) {//查询
String strSQL =
"select Studentno,StudentName,Type,bookno,bookname,borrowdate,mustreturndate,returndate,com from bookbrowse";
String strSql = null;
if (studentNameTextField.getText().trim().equals("") &&//无条件查询
bookNameTextField.getText().trim().equals("")) {
strSql = strSQL;
}
else if (studentNameTextField.getText().trim().equals("")) {//按照书名查询
strSql = strSQL + " where bookName='" +
bookNameTextField.getText().trim() + "'";
}
else if (bookNameTextField.getText().trim().equals("")) {//按照学生名字查询
strSql = strSQL + " where studentName='" +
studentNameTextField.getText().trim() + "'";
}
else {
strSql = strSQL + " where studentName='" +//按照学生姓名和书名查询
studentNameTextField.getText().trim() + "'and bookName='" +
bookNameTextField.getText().trim() + "'";
}
try {
//删除table中的数据:
int rowCount = defaultModel.getRowCount() - 1; //取得table中的数据行;
int j = rowCount;
for (int i = 0; i <= rowCount; i++) {
defaultModel.removeRow(j); //删除rowCount行的数据;
defaultModel.setRowCount(j); //重新设置行数;
j = j - 1;
}
rs = db.getResult(strSql);
while (rs.next()) {//将查询结果存放到表格
Vector data = new Vector();
data.addElement(rs.getString(1));
data.addElement(rs.getString(2));
data.addElement(rs.getString(3));
data.addElement(rs.getString(4));
data.addElement(rs.getString(5));
data.addElement(rs.getString(6));
data.addElement(rs.getString(7));
data.addElement(rs.getString(8));
data.addElement(rs.getString(9));
defaultModel.addRow(data);
}
table.revalidate();//更新界面
}
catch (SQLException sqle) {
System.out.println(sqle.toString());
}
catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -