Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Resako Resako Ученик (22), на голосовании 8 лет назад
1. Есть объект класса JTextField (пусть будет text1), я в него что-то написал, теперь мне по нажатию Enter нужно достать оттуда текст. Как это сделать? Как добавить слушатель? (Должно работать как в любой поисковой строке. Написал запрос, нажал Enter в момент когда курсор находится в поле ввода — что-то начало происходить)
2. Как получить последнюю строку, если это многострочное поле ввода, например поле ввода класса JTextArea
Голосование за лучший ответ
cfif Гуру (4642) 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!
Дима Сигида Мастер (2230) 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 содержит последнюю строку из поля.
Дима СигидаМастер (2230) 7 лет назад
Ошибся, не public void run() а actionPerformed(ActionEvent e)
Похожие вопросы