将按钮方法绑定到ENTER键

Cas*_*Rol 1 java binding javafx button scenebuilder

我在程序中遇到问题,我目前正在处理.该程序是一个登录系统,其中我有一个文本字段,一个密码字段和两个按钮(登录和退出).

我想将ENTER键绑定到"登录"按钮,这样无论什么是聚焦,如果我按下当前场景中的ENTER键,它将按下"登录"按钮.请记住,它仍然需要对鼠标点击做出反应.

不确定要上传哪些代码段,所以如果您需要,请询问.

Imp*_*Fox 6

我想你正在寻找一个"默认按钮".您可以以编程方式设置,也可以在Scenebuilder/FXML中设置.


Scenebuilder/FXML

在Scenebuilder中打开场景.然后选择要绑定的按钮Enter.现在,您可以在" 属性:按钮>特定 "下的右侧面板上勾选"默认按钮" .点击保存,就是这样.

Scenebuilder的例子

这将在FXML中将defaultButton="true"属性添加到<Button>标记.


编程

在您的控制器中,您需要设置Button#setDefaultButton(boolean)true.您可能希望在控制器的初始化阶段执行此操作.

示例控制器:

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;

import java.net.URL;
import java.util.ResourceBundle;

public class Controller implements Initializable
{
    @FXML
    private Button button;

    @Override
    public void initialize(URL location, ResourceBundle resources)
    {
        button.setDefaultButton(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

您现在可以按Enter场景中的任意位置来模拟按下该按钮(从而执行其监听器).此外,按钮上会应用略带蓝色的重音,以显示它是默认按钮.

  • 或者通过代码中的`Button#setDefaultButton(true)`,或者通过FXML 中的`&lt;Button defaultButton="true" /&gt;`。 (2认同)