Выделение определённых символов 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д