Выделение определённых символов JTextArea по нажатию кнопки. Метод select - Java

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

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

Добрый вечер, мне нужно написать программу, которая будет искать и выделять нужное слово в тексте. То есть у меня есть текстовое поле, куда я ввожу слово. Есть JTextArea, куда я ввожу текст. Потом я нажимаю кнопку, и в JTextArea должно выделиться слово, которые я ввёл в текстовое поле. Почему у меня не работает метод select? Подскажите, пожалуйста, что делать. Очень нужно Вот код:
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. /**
  6. * Created by Бородин on 28.03.2015.
  7. */
  8. public class ItSearch {
  9. public static void main(String[] args) {
  10. JPanel Panel = new JPanel();
  11. Panel.setLayout(new GridLayout(3, 1));
  12.  
  13. JPanel p = new JPanel();
  14. p.setLayout(new GridLayout(1, 3));
  15. JLabel label1 = new JLabel("Введите слово:");
  16. final JTextField text = new JTextField();
  17. JButton button = new JButton("Поиск");
  18. final JTextArea jTextArea1 = new JTextArea();
  19. p.add(label1);
  20. p.add(text);
  21. p.add(button);
  22. Panel.add(p);
  23. Panel.add(jTextArea1);
  24. JFrame frame = new JFrame("Search");
  25. frame.setContentPane(Panel);
  26. frame.pack();
  27. frame.setVisible(true);
  28. // Создал интерфейс
  29.  
  30. button.addActionListener(new ActionListener() {
  31. @Override
  32. public void actionPerformed(ActionEvent e) {
  33. //пытаюсь выделить нужное слово в jTextArea1
  34. int b = 0;
  35. String textArea = jTextArea1.getText();
  36. String textField;
  37. textField = text.getText();
  38. char[] tOne = textArea.toCharArray();
  39. char[] tTwo = textField.toCharArray();
  40. for (int i = 0; i < textArea.length(); i++) {
  41. if (tOne[i]==tTwo[0]) {
  42. for (int k = 0; k < textField.length(); k++) {
  43. if (tTwo[k] == tOne[i]) {
  44. b++;
  45. i++;
  46.  
  47. }
  48. if (b == textField.length()) {
  49. jTextArea1.select(i - b, i);
  50. jTextArea1.setSelectedTextColor(Color.red);
  51. jTextArea1.repaint();
  52. i-=b;
  53. }
  54. }
  55. }
  56. }
  57.  
  58. }
  59. });
  60. }
  61. }

Решение задачи: «Выделение определённых символов JTextArea по нажатию кнопки. Метод select»

textual
Листинг программы
  1. int index = textArea.indexOf(textField);
  2. if(index >= 0) {
  3.   jTextArea1.select(index, index+textField.length());
  4.   jTextArea1.grabFocus();
  5. }

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


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

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

14   голосов , оценка 4 из 5

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

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

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