Чтение текста из JTextArea в Java - PullRequest
2 голосов
/ 09 июля 2011

У меня есть JTextArea в моей Java-программе ... Я хочу, чтобы, если я напишу звездочку (*) в JTextArea, вывод был бы ATX в виде текста ... Может кто-нибудь помочь мнепожалуйста * * 1004

Ответы [ 6 ]

3 голосов
/ 09 июля 2011

вы можете сделать это

if(yourTextArea.getText.contains("*"))
{
    yourTextArea.setText("ATX");
}
1 голос
/ 09 июля 2011

Звучит так, как будто вы хотите захватить ввод пользователя, а затем определить, хотите ли вы что-то с ним сделать или нет, в зависимости от того, что это такое.

Во-первых, вам нужно добавить слушателя действия дляэто JTextArea для прослушивания того, что пользователь вводит, чтобы вы могли определить, что это такое.Это можно сделать с помощью KeyListener .Далее вам нужен способ определить, где каретка расположена в JTextArea.Это можно сделать с помощью CaretListener .

Теперь, когда происходит событие KeyPressed, вам нужно будет определить, что это за ключ.Если это на самом деле звездочка *, вы вставите текст ATX в JTextArea в текущей позиции каретки.

Затем вы будете использовать что-то вроде:

textarea.insert("ATX", pos);

Где textarea - это объект JTextArea, а pos - это целое число, которое содержит текущую позицию каретки в JTextArea.Если вы не уверены, как получить позицию каретки, ознакомьтесь с API CaretListener.В нем есть все, что вам нужно.

1 голос
/ 09 июля 2011

Упс, неправильно прочитал вопрос.

Если вы хотите делать это постоянно, то единственный путь - через keyListener:

http://download.oracle.com/javase/tutorial/uiswing/events/keylistener.html

На мой взгляд, это, вероятно, было бы довольно раздражающей функциональностью, позволяющей менять один символ на 3 символа в зависимости от типа пользователя. Попробуйте сделать это, когда пользователь делает какой-то метод, и в этом случае вам не понадобится слушатель.

1 голос
/ 09 июля 2011

Вы можете добавить слушателя ключа к нему, поэтому, когда бы ни вводился ключ, вы проверяете, является ли он * и заменяет ли он ATX

1 голос
/ 09 июля 2011

Вы имеете в виду:

String s = YourTextArea.getText().contains("*") ? "ATX" : YourTextArea.getText();

Пожалуйста, уточните свой вопрос, чтобы мы могли помочь вам

0 голосов
/ 09 июля 2011

выход где?В эту текстовую область сам?Итак, другими словами, вы хотите реализовать какой-то псевдоним?

В этом случае вы можете добавить KeyListener и в его keyTyped () реализовать свою логику: если ключ * добавит в текстовую область ваш текст.

...