java - 将按钮方法绑定(bind)到 ENTER 键

标签 java button javafx binding scenebuilder

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

我想把回车键绑定(bind)到“登录”按钮上,这样无论它关注什么,如果我在当前场景中按下回车键,它都会按下“登录”按钮。请记住,它仍然需要对鼠标点击使用react。

最佳答案

我想您正在寻找“默认按钮”。您可以通过编程方式或在 Scenebuilder/FXML 中设置它。


场景生成器/FXML

在 Scenebuilder 中打开您的场景。然后选择要将 Enter 绑定(bind)到的按钮。现在您可以在Properties : Button > Specific 下的右侧面板中勾选“Default Button”。点击保存即可。

Scenebuilder example

这将在 FXML 中添加 defaultButton="true"属性为 <Button>标签。


程序化

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

示例 Controller :

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

您现在可以在场景中的任意位置按 Enter 来模拟按下该按钮(从而执行其监听器)。此外,按钮上应用了轻微的蓝色强调,以使其明显表明它是默认按钮。

关于java - 将按钮方法绑定(bind)到 ENTER 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49980469/

相关文章:

java - 执行 Html.fromHtml 后更改 TextViews 中 html 链接的样式

java - 模块 javafx.controls 未找到异常

java - 改变javafx上的imageview效果

java - 套接字编程和动态IP

java - 从日历对象显示“MM/DD/YYYY”(重复)

android - postDelayed阻塞ui线程

javascript - 按钮一一着色

python - 如何使用 winsound 阻止声音相互叠加? (Python 和 tkinter)

javafx - 在 JavaFX 中强制立即绘制

java - 将字符串数组转换为对象?