gpt4 book ai didi

java - 当键入的文本是 JTable 中的一行时刷新 JTable

转载 作者:行者123 更新时间:2023-11-29 03:28:59 26 4
gpt4 key购买 nike

我有一个包含 7 列和 2 行的 JTable。在我的 JTable 下方,我有一个 JTextField。当我在 JTextField 中输入内容时,我可以很容易地得到我输入的内容:String lookFor = this.jTextField2.getText();

但是现在,我想在我的 JTextField 中键入内容后刷新我的 JTable,但只有当一行(或多行)包含来自JTextField。我试过了,没有结果:

public Object[][] getTableData(JTable table) {
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
Object[][] tableData = new Object[nRow][nCol];
for (int i = 0; i < nRow; i++) {
for (int j = 0; j < nCol; j++) {
tableData[i][j] = dtm.getValueAt(i, j);
}
}
return tableData;
}

private void jTextField2KeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:

DefaultTableModel newTableModel = new DefaultTableModel();
String lookFor = this.jTextField2.getText();

Object[][] td = getTableData(this.myTable);

int rows = td.length;
for (int i = 0; i < rows; i++) {
String brand = (String) td[0][0];
String model = (String) td[0][1];
String serialNumber = (String) td[0][2];
String date = (String) td[0][3];
String firstname = (String) td[0][4];
String lastname = (String) td[0][5];
String desc = (String) td[0][6];

if (brand.contains(lookFor) || model.contains(lookFor) || serialNumber.contains(lookFor) || date.contains(lookFor)
|| firstname.contains(lookFor) || lastname.contains(lookFor) || desc.contains(lookFor));
newTableModel.addRow(new Object[]{brand, model, serialNumber, date, firstname, lastname, desc});

}

this.myTable.setModel(newTableModel);
}

最佳答案

听起来您想进行表格过滤。

阅读 Sorting and Filtering 上的 Swing 教程部分一个工作示例,它将过滤在文本字段中输入文本时显示的行。

关于java - 当键入的文本是 JTable 中的一行时刷新 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19413410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com