Top.Mail.Ru
Ответы

Java, как получить текст по нажатию Enter из объекта класса JTextField, JTextArea

1. Есть объект класса JTextField (пусть будет text1), я в него что-то написал, теперь мне по нажатию Enter нужно достать оттуда текст. Как это сделать? Как добавить слушатель? (Должно работать как в любой поисковой строке. Написал запрос, нажал Enter в момент когда курсор находится в поле ввода — что-то начало происходить)
2. Как получить последнюю строку, если это многострочное поле ввода, например поле ввода класса JTextArea

По дате
По Рейтингу
Аватар пользователя
Мастер
8лет

Для текстового поля добавить слушатель нажатия Enter просто -

название. addActionListener(new ActionListener(ActionEvent e) {
public void run() {

Код для поля.

}
});

Чтобы в таком коде получить текст, нужно написать в моём случае e.getActionCommand();

Зачем добавлять такой слушатель в JTextArea не знаю, лучше привязать кнопку.
Но если очень надо -

НАЗВАНИЕ. addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ТВОЙ КОД
(Если надо получить строку - НАЗВАНИЕ. getText();)
}
}
});

Чтобы получить последнюю строку из текста текстовой площади -
String a = НАЗВАНИЕ. getText();
a = a.split("\n")[a.split("\n").length - 1]);
Теперь строка A содержит последнюю строку из поля.

Аватар пользователя
Гуру
8лет

1.
private JTextField field;

public void initGui(){
field=new JtextField("someText");
Action action = new AbstractAction()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("do something with " + field.getText());
}
};

field.addActionListener( action ); //теперь по нажатию enter будет вызываться System.out.println("do something with " + field.getText());
}

2.
JTextArea area = new JTextArea("text\nmust\nbe\nHere!");
int last = area.getLineCount() - 1;
int start = area.getLineStartOffset(last);
int end = area.getLineEndOffset(last);

String lastLine = area.getText().substring(start, end); //Должно выдрать Here!