首页 > 解决方案 > 除了鼠标点击之外,如何使用 Enter 键点击提交?

问题描述

我有这个代码

valider.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

            WebElement c = driver.findElement(By.name("cin"));
            WebElement d = driver.findElement(By.id("dn"));
            WebElement cap = driver.findElement(By.name("cincap"));

            String myPass = String.valueOf(CIN.getPassword());
            String date = daten.getText();
            String capp = code.getText();
            // String ids = "";

            // fill the fields
            c.sendKeys(myPass);
            d.sendKeys(date);
            cap.sendKeys(capp);

            // button valider
            cap.submit();
     }
}

如何让“Enter”键按下提交按钮?

我搜索了很多方法,例如

 SubmitButton listener = new SubmitButton(textBoxToEnterName);
textBoxToEnterName.addActionListener(listener);
submit.addKeyListener(listener);

但我不知道将它放在我的代码中的正确位置?

标签: javaswingjframejbutton

解决方案


您可以通过调用根窗格的setDefaultButton()方法来实现这一点。JFrame试试这个例子。

import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.FlowLayout;

public class DefaultButton {

  public static void main(String[] args) {

    JButton button1 = new JButton("Button 1");
    button1.addActionListener(e -> System.out.println("Button 1 action fired"));

    JButton button2 = new JButton("Button 2");
    button2.addActionListener(e -> System.out.println("Button 2 action fired"));

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new FlowLayout());
    frame.getContentPane().add(button1);
    frame.getContentPane().add(button2);

    frame.getRootPane().setDefaultButton(button2);

    frame.setBounds(300, 200, 400, 300);
    frame.setVisible(true);
  }
}

推荐阅读