Искать текстовый файл и отображать результаты в JPanel

Кто-нибудь имеет какие-либо идеи о том, как я могу найти текстовый файл и перечислить результаты в JComponent, например, JPanel.

Я пытался разобраться с этим уже два дня, но безуспешно я не оценил бы ответ. Заранее большое спасибо.

Я пытался написать класс, который обрабатывает поисковые запросы в текстовом файле. Моя главная цель - получить строки в текстовом файле, которые содержат ключевые слова для поиска, введенные в JTextField, и распечатать их в соответствующем JComponent (что-то вроде JTextField, JTextPane, в зависимости от того, что лучше всего подходит).

Я хотел бы, чтобы результаты поиска отображались в столбцах, например, как отображаются результаты поиска Google, чтобы каждая строка из текстового файла печаталась в отдельной строке. Мне сказали, что лучше использовать ArrayList. Я действительно не знаю, как это сделать. Я собрал идеи со всех концов, и это то, что я до сих пор:

Большая оценка заранее. Я очень новичок в Java. Я занимался этим целый день, пытаясь понять это правильно, и не зашел слишком далеко. Готов попробовать что угодно, даже новый подход.

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

Ответы на вопрос(2)

Ваш ответ на вопрос