gpt4 book ai didi

java - 如何读取和搜索 jTable 中的文件?

转载 作者:行者123 更新时间:2023-12-02 11:49:34 26 4
gpt4 key购买 nike

我想在这段代码中做什么:当单击搜索按钮时,它将读取一个文件,然后将搜索值与中的数据进行匹配file & 将在jTable中显示搜索结果。

我面临的问题:如果 GPA 选择 A+,那么它会显示 A+、A-,并且当我在给出另一个搜索值后再次按下搜索按钮时,表格只会在其中添加更多数据.

所需的解决方案:我只想读取文件并仅在 jTable 中显示结果,而不是一次又一次地添加结果。搜索按钮应仅在 GPA 和类(class)列中进行搜索。 & 当 GPA 选择“A/B/C+”或“-”时,搜索结果应仅给出包含该特定 GPA 的数据。

注意:我不想更改搜索选项。

我是 JAVA 的新手。因此,任何形式的帮助将不胜感激! :)

Screenshot of the UI

private void srchBtnActionPerformed(java.awt.event.ActionEvent evt) {                                        

//file read
String filepath = "E:\\Netbeans workspace\\modified\\Project\\Info.txt";
File file = new File(filepath);

try {
BufferedReader br = new BufferedReader(new FileReader(file));
model = (DefaultTableModel)jTable1.getModel();

Object[] tableLines = br.lines().toArray();

for (int i = 0; i < tableLines.length; i++){
String line = tableLines[i].toString().trim();
String[] dataRow = line.split("/");
model.addRow(dataRow);

}

} catch (Exception ex) {
Logger.getLogger(ReceiverF.class.getName()).log(Level.SEVERE, null, ex);
}

//search from file
String bGroupSrch = (String) jComboBoxBGroup.getSelectedItem();
if(positiveRBtn.isSelected())
bGroupSrch = bGroupSrch + "+";
else if(negativeRBtn.isSelected())
bGroupSrch = bGroupSrch + "-";

String areaSrch = (String)jComboBoxArea.getSelectedItem();

if (bgGroup.getSelection() != null) {

filter(bGroupSrch);
filter(areaSrch);
} else {
SrchEMsg sem = new SrchEMsg(this);
sem.setVisible(true);
sem.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}
}

//Filter Method
private void filter(String query){
TableRowSorter<DefaultTableModel> tr= new TableRowSorter<DefaultTableModel>(model);
jTable1.setRowSorter(tr);

tr.setRowFilter(RowFilter.regexFilter(query));
}

最佳答案

the table just adds more data in it.

当您开始搜索时:

model.setRowCount(0);

清除表的表模型中的数据。

或者更简单的解决方案是不要一直重新加载数据。相反,您只需更改表使用的过滤器即可。

阅读 Swing 教程中关于 Sorting and Filtering 的部分。每次键入字符时,那里的代码都会替换过滤器。

当搜索选项更改时,您的代码将更改过滤器。

关于java - 如何读取和搜索 jTable 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47978195/

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