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

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

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

Добрый вечер, мне нужно написать программу, которая будет искать и выделять нужное слово в тексте. То есть у меня есть текстовое поле, куда я ввожу слово. Есть JTextArea, куда я ввожу текст. Потом я нажимаю кнопку, и в JTextArea должно выделиться слово, которые я ввёл в текстовое поле. Почему у меня не работает метод select? Подскажите, пожалуйста, что делать. Очень нужно Вот код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
/**
 * Created by Бородин on 28.03.2015.
 */
public class ItSearch {
 
    public static void main(String[] args) {
        JPanel Panel = new JPanel();
        Panel.setLayout(new GridLayout(3, 1));

        JPanel p = new JPanel();
        p.setLayout(new GridLayout(1, 3));
 
        JLabel label1 = new JLabel("Введите слово:");
        final JTextField text = new JTextField();
        JButton button = new JButton("Поиск");
 
        final JTextArea jTextArea1 = new JTextArea();
 
        p.add(label1);
        p.add(text);
        p.add(button);
        Panel.add(p);
 
        Panel.add(jTextArea1);
 
        JFrame frame = new JFrame("Search");
        frame.setContentPane(Panel);
        frame.pack();
        frame.setVisible(true);
// Создал интерфейс

        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //пытаюсь выделить нужное слово в jTextArea1
 
                int b = 0;
                String textArea = jTextArea1.getText();
                String textField;
                textField = text.getText();
                char[] tOne = textArea.toCharArray();
                char[] tTwo = textField.toCharArray();
 
                for (int i = 0; i < textArea.length(); i++) {
                    if (tOne[i]==tTwo[0]) {
                        for (int k = 0; k < textField.length(); k++) {
 
                            if (tTwo[k] == tOne[i]) {
                                b++;
                                i++;

                            }
                            if (b == textField.length()) {
                                jTextArea1.select(i - b, i);
                                jTextArea1.setSelectedTextColor(Color.red);
                                jTextArea1.repaint();
                                i-=b;
                            }
                        }
 
                    }
                }

            }
        });
 
    }
}

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

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

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


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

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

14   голосов , оценка 4 из 5
Похожие ответы