检测在JTextField中输入press

a s*_*ich 98 java swing jtextfield

是否有可能Enter在java中输入JTextField 时检测到有人按下了什么?无需创建按钮并将其设置为默认值.

cam*_*ckr 163

A JTextField被设计成使用ActionListener就像是一个JButton.看addActionListener()方法JTextField.

例如:

Action action = new AbstractAction()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        System.out.println("some action");
    }
};

JTextField textField = new JTextField(10);
textField.addActionListener( action );
Run Code Online (Sandbox Code Playgroud)

现在,在使用Enter密钥时会触发该事件.

此外,即使您不想将按钮设置为默认按钮,您还可以使用按钮共享监听器.

JButton button = new JButton("Do Something");
button.addActionListener( action );
Run Code Online (Sandbox Code Playgroud)

注意,此示例使用an Action,它实现ActionListener因为Action是具有附加功能的较新API.例如,你可以禁用Action哪个将禁用文本字段和按钮的事件.


kyo*_*lys 22

JTextField function=new JTextField(8);   
function.addActionListener(new ActionListener(){

                public void actionPerformed(ActionEvent e){

                        //statements!!!

                }});
Run Code Online (Sandbox Code Playgroud)

你需要做的就是将addActionListener添加到JTextField中,如上所述!按下后Enter,动作将在声明中执行您想要的操作!

  • 内联块的奖金。保持代码干净。 (2认同)

Ion*_*zău 14

为...添加活动KeyPressed.

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {
  if(evt.getKeyCode() == KeyEvent.VK_ENTER) {
      // Enter was pressed. Your code goes here.
   }
} 
Run Code Online (Sandbox Code Playgroud)

  • -1,按照设计使用的方式使用API​​. (5认同)
  • @ᴳᵁᴵᴰᴼ:一个记录很好的东西,可以在[KeyBindings](https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html)的官方教程中找到,虽然非常好[答案] ](http://stackoverflow.com/q/15290035/1057230)在stackoverflow上,也涵盖了相同的方面:-) (2认同)

die*_*d3v 5

你想做这样的事吗?

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();
            }
        }

    });
Run Code Online (Sandbox Code Playgroud)