Как получить 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());
            }
        }
    });
Другие вопросы по тегам