Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2012, 21:14   #1
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию JTextArea метод select.

Здравствуйте. Я хотел сделать посик в JTextArea, решил сделать так: найти индекс начала искомого слова, и выделить само слова с помощью select.

Вот что я сделал:




Код:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 *
 * @author Wild_klas
 */

public class Search extends javax.swing.JDialog implements ActionListener {
    private JButton okButton;
    private JButton cancelButton;
    private JTextField srcText;
    private JTextArea area;

    public Search() {
        okButton = new JButton();
        cancelButton = new JButton();
        srcText = new JTextField();
        area = new JTextArea();

        srcText.setText("поиск");
        okButton.setText("Ok");
        cancelButton.setText("Cansel");
        okButton.setActionCommand("ok");
        cancelButton.setActionCommand("cansel");
        
        okButton.addActionListener(this);
        cancelButton.addActionListener(this);

        add(srcText, BorderLayout.NORTH);
        add(area, BorderLayout.CENTER);
        add(okButton, BorderLayout.EAST);
        add(cancelButton, BorderLayout.WEST);
        
        setBounds(400, 350, 370, 100);

        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        
        area.setForeground(Color.blue);
        add(area, BorderLayout.CENTER);
        area.setText("Тест на поиск и выдиление текста.");
        area.select(5, 15);
        area.setSelectedTextColor(Color.red);
        area.repaint();

        setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        if ("ok".equals(e.getActionCommand())) {
            String word = srcText.getText().trim();
            String document = area.getText();
            System.out.println(document.indexOf(word));
            area.select(document.indexOf(word), word.length());
            area.repaint();
        } else {
            this.dispose();
        }
    }

    public static void main(String args[]) {
        new Search();
    }
}
Как видите метод select, вызывается 2 раза, но ничего собственно не выделяется. Подскажите что я делаю не правильно.

И еще вопрос: подскажите пожалуйста, можно ли в jtextArea сделать что - то по типу маркера? (выделяем текст, и по нажатию кнопочки он выделен к примеру желтым)
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Старый 28.03.2012, 01:12   #2
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

Разобрался. Вот в чем проблема была:

Код:
  public void actionPerformed(ActionEvent e) {
        if ("ok".equals(e.getActionCommand())) {
            String word = srcText.getText().trim();
            String document = area.getText();
            int start = document.indexOf(word);
            System.out.println(document.indexOf(word));

            area.select(start, start + word.length());
            area.grabFocus();
        } else {
            this.dispose();
        }
    }
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
JTextArea считывание по линиям X@OC Общие вопросы по Java, Java SE, Kotlin 2 20.07.2011 21:50
Прокрутка текста в JTextArea linliss Общие вопросы по Java, Java SE, Kotlin 1 23.05.2011 22:07
Форматирование jTextArea Tesmont Общие вопросы по Java, Java SE, Kotlin 6 01.05.2011 20:19
Метод Select. Где ошибка?? Klakson Microsoft Office Excel 2 11.08.2009 12:36