Показать строку в которой будет искомое слово - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. У меня возник такой вот вопрос по библиотеке Swing и jFrame. Мне надо организовать поиск целой строки в файле. В качестве запрашиваемого аргумента мы вводим 1 слово из этой строки в поле поиска размещенное на jFrame. Затем мы нажимаем кнопку поиска, и вот собственно вопрос. Как задать эту самую кнопку поиска, что мне в ней писать? Как считывать информацию из тестового файла я знаю (благо подсказали мне добрые форумчане).
Листинг программы
  1. public static void main(String args[]) throws IOException{
  2. Search books = new Search ();
  3. String line = null;
  4. ArrayList<Dic> list = new ArrayList<>();
  5. try (BufferedReader reader = new BufferedReader(new InputStreamReader(
  6. new FileInputStream("Dict.txt"), "Cp1251"))) {
  7. while ((line = reader.readLine()) != null) {
  8. String[] items = line.split("\n");
  9. list.add(new Dic (items[0]));
  10. }
  11. }
  12. catch (Exception ex) {
  13. }
Как вы уже успели понять, текстовая информация из файла записывается в коллекцию типа ArrayList. И мне как то надо прописать цикл который бы искал строку с нужным мне словом и выводил её целиком в соответствующее поле типа jTextField. Тема с swing и чтением из текстовых фалов для меня нова и я в ней ничего не понимаю, помогите мне в ней разобраться. Вот то что я успел сделать, как вы можете понять тут чуть больше чем ничего
Листинг программы
  1. package searcher;
  2. import java.io.BufferedReader;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import javafx.scene.text.Text;
  8. /**
  9. *
  10. * @author
  11. */
  12. public class Search extends javax.swing.JFrame {
  13.  
  14. private ArrayList<Dic> worr;
  15. private void setArr(ArrayList<Dic> worr) {
  16. this.worr = worr;
  17. }
  18. public ArrayList<Dic> getArr() {
  19. return worr;
  20. }
  21. public Search() {
  22. initComponents();
  23. }
  24. /**
  25. * This method is called from within the constructor to initialize the form.
  26. * WARNING: Do NOT modify this code. The content of this method is always
  27. * regenerated by the Form Editor.
  28. */
  29. @SuppressWarnings("unchecked")
  30. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  31. private void initComponents() {
  32. jTextField1 = new javax.swing.JTextField();
  33. jScrollPane1 = new javax.swing.JScrollPane();
  34. jTextArea1 = new javax.swing.JTextArea();
  35. Search = new javax.swing.JButton();
  36. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  37. jTextField1.addActionListener(new java.awt.event.ActionListener() {
  38. public void actionPerformed(java.awt.event.ActionEvent evt) {
  39. jTextField1ActionPerformed(evt);
  40. }
  41. });
  42. jTextArea1.setColumns(20);
  43. jTextArea1.setRows(5);
  44. jScrollPane1.setViewportView(jTextArea1);
  45. Search.setText("Найти");
  46. Search.addActionListener(new java.awt.event.ActionListener() {
  47. public void actionPerformed(java.awt.event.ActionEvent evt) {
  48. SearchActionPerformed(evt);
  49. }
  50. });
  51. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  52. getContentPane().setLayout(layout);
  53. layout.setHorizontalGroup(
  54. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  55. .addGroup(layout.createSequentialGroup()
  56. .addContainerGap()
  57. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  58. .addComponent(jTextField1)
  59. .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE))
  60. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  61. .addComponent(Search)
  62. .addContainerGap(26, Short.MAX_VALUE))
  63. );
  64. layout.setVerticalGroup(
  65. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  66. .addGroup(layout.createSequentialGroup()
  67. .addContainerGap()
  68. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  69. .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  70. .addComponent(Search))
  71. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  72. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  73. .addContainerGap(194, Short.MAX_VALUE))
  74. );
  75. pack();
  76. }// </editor-fold>
  77. private void SearchActionPerformed(java.awt.event.ActionEvent evt) {
  78. if (worr.equals(jTextField1.getText().trim())){
  79. } else {
  80. jTextArea1.setText(jTextField1. getText() + "-");
  81. }
  82. }
  83. private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
  84. // TODO add your handling code here:
  85. }
  86. /**
  87. * @param args the command line arguments
  88. * @throws java.io.IOException
  89. */
  90. public static void main(String args[]) throws IOException{
  91. Search books = new Search ();
  92. String line = null;
  93. ArrayList<Dic> list = new ArrayList<>();
  94. try (BufferedReader reader = new BufferedReader(new InputStreamReader(
  95. new FileInputStream("Dict.txt"), "Cp1251"))) {
  96. while ((line = reader.readLine()) != null) {
  97. String[] items = line.split("\n");
  98. list.add(new Dic (items[0]));
  99. }
  100. }
  101. catch (Exception ex) {
  102. }
  103. books.setArr(list);
  104. java.awt.EventQueue.invokeLater(new Runnable() {
  105. public void run() {
  106. new Search().setVisible(true);
  107. }
  108. });
  109. }
  110. // Variables declaration - do not modify
  111. private javax.swing.JButton Search;
  112. private javax.swing.JScrollPane jScrollPane1;
  113. private javax.swing.JTextArea jTextArea1;
  114. private javax.swing.JTextField jTextField1;
  115. // End of variables declaration
  116.  
  117. }
Программу пробую писать в Netbeans, помогите пожалуйста, а то уже неделю сижу над этой задачей и ничего конкретного в Google найти не могу

Решение задачи: «Показать строку в которой будет искомое слово»

textual
Листинг программы
  1. package test;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.io.BufferedReader;
  7. import java.io.FileReader;
  8. import java.io.IOException;
  9. import javax.swing.*;
  10.  
  11. /**
  12.  *
  13.  * @author Nicholas White
  14.  */
  15. public class Search extends JFrame implements ActionListener {
  16.    
  17.     JTextField jTextField1;
  18.     JTextArea jTextArea1;
  19.  
  20.     public Search() {
  21.         initComponents();
  22.     }
  23.    
  24.     public static void main(String[] args) {
  25.         java.awt.EventQueue.invokeLater(new Runnable() {
  26.             @Override
  27.             public void run() {
  28.                 new Search().setVisible(true);
  29.                
  30.             }
  31.         });
  32.             }
  33.    
  34.  
  35.     private void initComponents() {
  36.         jTextField1 = new javax.swing.JTextField();
  37.         JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
  38.         jTextArea1 = new javax.swing.JTextArea();
  39.         JButton Search = new javax.swing.JButton("Search");
  40.         Search.addActionListener(this);
  41.        
  42.         JPanel panel = new JPanel(new BorderLayout(50, 50));
  43.         panel.add(jTextField1, BorderLayout.NORTH);
  44.         panel.add(Search, BorderLayout.CENTER);
  45.         panel.add(jScrollPane1, BorderLayout.SOUTH);
  46.        
  47.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  48.         setContentPane(panel);
  49.        
  50.         jTextArea1.setColumns(20);
  51.         jTextArea1.setRows(5);
  52.         jScrollPane1.setViewportView(jTextArea1);
  53.        
  54.         pack();
  55.     }
  56.  
  57.     @Override
  58.     public void actionPerformed(ActionEvent e) {
  59.         String searchLine = jTextField1.getText();
  60.         String line = null;
  61.         try{
  62.             BufferedReader reader = new BufferedReader(new FileReader("C:/Users/Пользователь/Documents/NetBeansProjects/Test/build/classes/test/Test.txt"));
  63.             while((line = reader.readLine()) != null){
  64.                 if(line.contains(searchLine)){
  65.                    jTextArea1.append(line + "\n");
  66.                 }
  67.             }
  68.         } catch(IOException ex) {
  69.             System.err.println("Couldnt find file");}
  70.     }
  71.    
  72. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.583 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы