【发布时间】:2013-04-29 00:52:17
【问题描述】:
所以我想要一个 JTexField 将其中的文本放入 JTextArea 中,当光标在其中按下回车键时。有人可以帮忙吗?
【问题讨论】:
标签: java swing jtextfield keylistener enter
所以我想要一个 JTexField 将其中的文本放入 JTextArea 中,当光标在其中按下回车键时。有人可以帮忙吗?
【问题讨论】:
标签: java swing jtextfield keylistener enter
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());
}
}
});
【讨论】:
忘记将KeyListener 用于Swing 组件。
此侦听器是为与AWT 一起使用而设计的,组件不为JTextComponents 提供可靠的交互机制。
改用ActionListener - 在绝大多数系统上,ActionEvent 在按下回车键时由JTextField 调度。
myTextField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
myTextArea.append(myTextField.getText() + "\n");
}
});
【讨论】:
ActionListener 由JTextField 的回车键触发