Как получить JTextField для ответа на клавишу ввода
Поэтому я хочу получить JTexField для помещения текста в него в JTextArea при нажатии клавиши ввода с курсором в нем. Кто-нибудь может помочь?
2 ответа
Решение
Забудьте об использовании KeyListener
за Swing
компоненты.
Этот слушатель был разработан для использования с AWT
Компоненты не обеспечивает надежный механизм взаимодействия для JTextComponents
,
Используйте ActionListener
вместо этого - в подавляющем большинстве систем ActionEvent
отправляется JTextField
когда ввод нажата.
myTextField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
myTextArea.append(myTextField.getText() + "\n");
}
});
JTextArea myJTextArea = new JTextArea();
myJTextArea.setBounds(200, 15, 258, 28);
myJPanel.add(myJTextArea);
JTextField myJTextField = new JTextField();
myJTextField.setBounds(15, 15, 130, 28);
myJPanel.add(myJTextField);
myJTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER) {
myJTextArea.setText(myJTextField.getText());
}
}
});