繁体   English   中英

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

[英]How can I read and search from file in jTable?

我要在此代码中执行的操作:单击搜索按钮时,它将读取一个file然后将搜索值与file的数据进行匹配,并在jTable显示搜索结果。

我面临的问题:如果选择了GPA为A +,那么它会显示A +,A-和&,当我在提供另一个搜索值后再次按下搜索按钮时,该表只会在其中添加更多数据。

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

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

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

用户界面的屏幕截图

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));
}

该表只会在其中添加更多数据。

当您开始搜索时,您将执行以下操作:

model.setRowCount(0);

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

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

阅读Swing教程中有关排序和过滤的部分 每次键入字符时,该代码都会替换过滤器。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM