Есть ли у кого-нибудь идеи о том, как я могу искать текстовый файл и перечислять результаты в JComponent, например JPanel.Поиск текстового файла и отображение результатов в 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);
}
* "Кто-нибудь есть какие-либо идеи о том, как я могу найти текстовый файл и перечислить результаты в JComponent, например JPanel? * "- Да - [Что вы пробовали?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) Возможно, мы может дать какое-то направление – MadProgrammer
Вы пытались сделать эту работу в течение двух дней, так что наверняка у вас есть код, который вы можете нам показать? Некоторая отправная точка? Давай увидим это. – Kon
@olicver muchai см. JTextPane.read() – mKorbel