Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 除了鼠标点击外,如何使用Enter键点击submit?_Java_Swing_Jframe_Jbutton - Fatal编程技术网

Java 除了鼠标点击外,如何使用Enter键点击submit?

Java 除了鼠标点击外,如何使用Enter键点击submit?,java,swing,jframe,jbutton,Java,Swing,Jframe,Jbutton,我有这个密码 valider.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { WebElement c = driver.findElement(By.name("cin")); WebElement d = driver.findElement(By.id("dn")); W

我有这个密码

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();
     }
}
如何允许“回车”键按下提交按钮

我搜索了一下,找到了很多方法 像


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

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

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

请参阅:您需要添加一个keylistener,正如@mumpitz所建议的,阅读我在addActionListener类中添加的
if(Event.getSource()==code){valider.doClick();}
不起作用您能解释一下button1和button2的作用吗?我所理解的是,如果我是正确的,单击两个按钮时,它们将显示消息“******action fired”,因此
frame.getRootPane().setDefaultButton(button2)那一行做什么?顺便说一句,我需要为调用它的代码创建一个新类吗?@MJ,你运行我的程序了吗?它是否正常工作(即,当您按Enter键时,
按钮2
操作是否启动)
setDefaultButton()
是Java中提供的用于获取“默认按钮”行为的API。您的按钮
valider
是否显示在
JFrame
中?当我在写入CAPTCHA后按enter键时,它会在控制台中显示“button 2 action Fireed”@MJ,因此,您是否添加了
System.out.println(“button 2 action Fireed”)
valider
按钮的操作侦听器?我的代码只显示了将按钮设置为“默认”按钮的示例。你必须理解我的代码并将其应用到你的程序中。在我理解代码后,它终于起作用了,非常感谢,我真的很感激
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);
  }
}