Выделение определённых символов 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();
}