public void putDates() { DefaultTableModel model = (DefaultTableModel) table.getModel(); model.setRowCount(0); Connection con = null; Statement stm=null; try { con = DbUtil.getConnection(); String sql="select * from borrowdetail"; stm=con.createStatement(); ResultSet list = DataB.query(sql, stm); while (list.next()) { Vector rowData = new Vector(); rowData.add(list.getInt("id")); int roomid=list.getInt("room_id"); rowData.add(roomid); int book_status=list.getInt("room_status"); String s_statu=getStu(book_status); rowData.add(s_statu); rowData.add(list.getObject("borrow_time")); rowData.add(list.getDate("return_time")); model.addRow(rowData); } } catch (Exception e) { e.printStackTrace(); }finally{ try { DbUtil.closeCon(con); } catch (Exception e) { e.printStackTrace(); } } } public String getStu(int n) { if(n==1) return "在借"; else return "已还"; }
时间: 2024-02-14 16:18:58 浏览: 181
这段代码是用于在表格中展示借阅详情信息的,其中包含了连接数据库,查询数据等操作。具体来说,这个方法会从数据库中查询所有的借阅信息,并将其展示在一个表格中,其中包括借阅编号、房间编号、借阅状态、借阅时间、归还时间等信息。同时,这个方法还包含了一个用于判断借阅状态的方法getStu,如果借阅状态为1则返回“在借”,否则返回“已还”。该方法在查询数据时使用了DbUtil.getConnection()方法来获取数据库连接,使用了DataB.query()方法来执行查询语句,同时还包含了一些异常处理和资源释放的代码。
相关问题
public void searchAndDisplay(String searchText, JTable table, JTable resultTable) { TableModel model = table.getModel(); int rowCount = model.getRowCount(); int colCount = model.getColumnCount(); DefaultTableModel resultModel = new DefaultTableModel(); //resultModel.setColumnIdentifiers(UserTable.getColumnIdentifiers()); for (int i = 0; i < rowCount; i++) { for (int j = 0; j < colCount; j++) { if (searchText.equals(model.getValueAt(i, j).toString())) { Object[] rowData = new Object[colCount]; for (int k = 0; k < colCount; k++) { rowData[k] = model.getValueAt(i, k); } resultModel.addRow(rowData); } } } resultTable.setModel(resultModel); } private void UserSearchActionPerformed(ActionEvent evt) { // TODO Auto-generated method stub String UserName = this.UserNameTxt.getText(); int column = 4; for(int row = 0;row< UserTable.getRowCount();row++) { Object value = UserTable.getValueAt(row, column); if(value.equals(UserName)) { DefaultTableModel dtm = (DefaultTableModel) UserTable.getModel(); dtm.setRowCount(0); /*TableRowSorter<TableModel> sorter = new TableRowSorter<>(model); sorter.setRowFilter(RowFilter.regexFilter(UserName)); UserTable.setRowSorter(sorter);*/ }else { JOptionPane.showMessageDialog(null, "该用户不存在"); return; } } }为我的代码添加一个查找功能:当我输入用户姓名时,它能从json文件中找到相应的数据并输出特定行
好的,那么您想要的功能可以通过以下步骤来实现:
1. 首先需要从json文件中读取数据,将其转化为Java对象。
2. 然后遍历Java对象,查找符合条件的数据行。
3. 最后将符合条件的数据行添加到新的TableModel中,并将其设置到显示结果的JTable中。
以下是示例代码,供您参考:
```
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import com.google.gson.Gson;
public class JsonSearchDemo {
public static void main(String[] args) {
// 示例代码中使用了Gson库来解析json文件,您可以根据实际情况选择其他库或自行解析。
Gson gson = new Gson();
try (FileReader reader = new FileReader("data.json")) {
// 将json数据读取为User对象列表
User[] users = gson.fromJson(reader, User[].class);
// 构造显示数据的TableModel
DefaultTableModel tableModel = new DefaultTableModel();
tableModel.addColumn("ID");
tableModel.addColumn("Name");
tableModel.addColumn("Age");
for (User user : users) {
Object[] row = {user.getId(), user.getName(), user.getAge()};
tableModel.addRow(row);
}
// 创建显示数据的JTable
JTable table = new JTable(tableModel);
// 创建查找结果的JTable
JTable resultTable = new JTable();
// 调用查找函数
searchAndDisplay("Alice", users, resultTable);
// 显示查找结果
JOptionPane.showMessageDialog(null, resultTable);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void searchAndDisplay(String searchText, User[] users, JTable resultTable) {
DefaultTableModel resultModel = new DefaultTableModel();
resultModel.addColumn("ID");
resultModel.addColumn("Name");
resultModel.addColumn("Age");
for (User user : users) {
if (user.getName().equals(searchText)) {
Object[] row = {user.getId(), user.getName(), user.getAge()};
resultModel.addRow(row);
}
}
resultTable.setModel(resultModel);
}
}
class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
```
请注意,示例代码中的User对象只包含了id、name和age三个属性,您需要根据自己的实际情况来修改代码。此外,示例代码中使用了JOptionPane来显示查找结果,您也可以将其修改为更适合自己的方式。
DefaultTableModel清空信息
可以使用DefaultTableModel的方法setRowCount(0)来清空表格中的所有信息。代码示例如下:
```
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setRowCount(0); //清空表格中的所有信息
```
其中table是一个JTable对象,需要先获取它的TableModel对象。
阅读全文