Durchsuchen Sie die Textdatei und zeigen Sie die Ergebnisse in einem JPanel an

Hat jemand eine Idee, wie ich eine Textdatei durchsuchen und die Ergebnisse in einer JComponent wie einem JPanel auflisten kann.

Ich habe zwei Tage lang versucht, dies zu korrigieren, aber kein Erfolg wird eine Antwort wirklich begrüßen. Vielen Dank im Voraus.

Ich habe versucht, eine Klasse zu schreiben, die Suchanfragen in eine Textdatei verarbeitet. Mein Hauptziel ist es, die Zeilen in einer Textdatei zu erhalten, die die in einem JTextField eingegebenen Suchschlüsselwörter enthalten, und sie in einer geeigneten JComponent (so etwas wie ein JTextField, JTextPane, je nachdem, was am besten passt) auszudrucken.

Ich möchte, dass die Suchergebnisse in Spalten angezeigt werden, etwa wie die Google-Suchergebnisse angezeigt werden, sodass jede Zeile aus der Textdatei in einer eigenen Zeile gedruckt wird. Mir wurde gesagt, dass es am besten ist, eine ArrayList zu verwenden. Ich weiß wirklich nicht, wie ich das machen soll. Ich habe Ideen von überall aufgegriffen und dies ist, was ich bisher habe:

Viel Dank im Voraus. Ich bin sehr neu in Java. Ich habe den ganzen Tag versucht, das in Ordnung zu bringen und bin nicht weit gekommen. Bin bereit alles angebotene auszuprobieren, auch einen neuen Ansatz.

// The class that handles the search query
// Notice that I've commented out some parts that show errors

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JTextPane;


public class Search {

    public static String path;
    public static String qri;

    public Search(String dTestFileDAT, String qry) {
        path = dTestFileDAT;
        qri = qry;
    }

    public static JTextPane resultJTextPane;
    public static List<String> linesToPresent = new ArrayList<String>();

    public static List<String> searchFile(String path, String match){

        File f = new File(path);
        FileReader fr;
        try {
            fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            String line;
                do{
                    line = br.readLine();
                    Pattern p = Pattern.compile(match);
                    Matcher m = p.matcher(line);
                    if(m.find())
                        linesToPresent.add(line);
                } while(line != null);

                br.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // resultJTextPane = new JTextPane();
        // resultJTextPane = (JTextPane) Home.BulletinsJPanel.add(linesToPresent);

        return linesToPresent;
    }
}

// This handles the click event to take the query. Notice that I've commented out some parts that show errors
private void mouseClickedSearch(java.awt.event.MouseEvent evt) {
    Search fs = new Search("/D:/TestFile.dat/", "Text to search for");

    // searchResultsJPanel.add(Search.searchFile("/D:/TestFile.dat/", "COLE"));
    // searchResultsJTextField.add(fs);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage