检测在JTextField中inputpress
在java中inputJTextField时,是否有可能检测到有人按Enter键 ? 无需创buildbutton并将其设置为默认值。
 JTextField被devise为像JButton一样使用ActionListener 。 请参阅JTextField的addActionListener()方法。 
例如:
 Action action = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { System.out.println("some action"); } }; JTextField textField = new JTextField(10); textField.addActionListener( action ); 
现在当使用Enter键时,事件被触发。
此外,还有一个好处是,即使不想将button设置为默认button,也可以使用button共享侦听器。
 JButton button = new JButton("Do Something"); button.addActionListener( action ); 
 注意,这个例子使用一个Action ,它实现了ActionListener因为Action是一个更新的API,带有附加function。 例如,您可以禁用将禁用文本字段和button的事件的Action 。 
 JTextField function=new JTextField(8); function.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //statements!!! }}); 
所有你需要做的就是addActionListener像上面的JTextField! 在你按下Enter之后,这个动作就会在声明中执行你想要的东西!
 为KeyPressed添加一个事件。 
 private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == KeyEvent.VK_ENTER) { // Enter was pressed. Your code goes here. } } 
首先通过以下方式在JButton或JTextField上添加操作命令:
 JButton.setActionCommand("name of command"); JTextField.setActionCommand("name of command"); 
然后将ActionListener添加到JTextField和JButton。
 JButton.addActionListener(listener); JTextField.addActionListener(listener); 
之后,在你的ActionListener实现上写
 @Override public void actionPerformed(ActionEvent e) { String actionCommand = e.getActionCommand(); if(actionCommand.equals("Your actionCommand for JButton") || actionCommand.equals("Your actionCommand for press Enter")) { //Do something } } 
你想做这样的事吗?
 JTextField mTextField = new JTextField(); mTextField.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_ENTER){ // something like... //mTextField.getText(); // or... //mButton.doClick(); } } }); 
其他答案(包括被接受的答案)是好的,但是如果你已经使用Java8,你可以做以下事情(以更短,更新的方式):
 textField.addActionListener( ae -> { //dostuff } ); 
 正如接受的答案所告诉的那样,您可以简单地使用一个ActionListener来捕获Enter-Key。 
但是,我的方法利用了Java 8中引入的function概念。
如果您想要为button和JTextField使用相同的操作,则可以执行以下操作:
 ActionListener l = ae -> { //do stuff } button.addActionListener(l); textField.addActionListener(l); 
如果需要进一步解释,请告诉我!
如果你想在JTextField中设置一个默认的button动作,你必须这样做:
 //put this after initComponents(); textField.addActionListener(button.getActionListeners()[0]); 
它是[0],因为button可以有很多动作,但通常只有一个(ActionPerformed)。
 public void keyReleased(KeyEvent e) { int key=e.getKeyCode(); if(e.getSource()==textField) { if(key==KeyEvent.VK_ENTER) { Toolkit.getDefaultToolkit().beep(); textField_1.requestFocusInWindow(); } } 
 要在JTextField为“input新闻”编写逻辑,最好将逻辑保存在keyReleased()块中而不是keyTyped()和keyPressed() 。 
只要使用这个代码:
 SwingUtilities.getRootPane(myButton).setDefaultButton(myButton);