当前位置: 首页 > 知识库问答 >
问题:

如何在JavaFX中实现密码字段上的CAPS锁报警气泡?

万乐逸
2023-03-14

我正在尝试对密码字段执行封顶锁定警报。如果caps lock处于打开状态,则气泡将出现在密码字段下方。我已经搜索了很多,但没有得到任何解决方案,如何在JavaFX中的输入字段上实现这样的bubble。我找到了一些源代码来获得caps锁状态。

    boolean isOn=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
scene.setOnKeyReleased( event -> {
            if ( event.getCode() == KeyCode.CAPS ) {
                System.out.println("Capslock pressed");
                System.out.println("Capslock state: " + isOn);
            }
        });

但是我的问题是如何在文本字段上实现气泡警报。在这里你可以看到我要做什么。

由于我是JavaFX的新手,如果您建议我一些可能的方法,将会很有帮助。有没有JavaFX库对输入字段做这样的气泡警报?

共有1个答案

凌钊
2023-03-14

听起来您已经想好了如何获得输入状态,您可以为侦听器尝试类似的操作

public class Main extends Application {

    private Label capsLabel = new Label("Caps is ON");

    private boolean capsIsOn;

    @Override
    public void start(Stage stage) {
        System.out.println(Toolkit.getDefaultToolkit().getLockingKeyState(20));

        //Try adding this line to get state on startup
        capsLabel.setVisible(Toolkit.getDefaultToolkit().getLockingKeyState(20));

        TextField textField = new TextField();

        //Also try adding this line and to check again so when the field 
        //is selected it will check again
        textField.setOnMouseClicked(event -> capsLabel.setVisible(Toolkit.getDefaultToolkit().getLockingKeyState(20)));

        textField.setOnKeyReleased(keyEvent -> {
            if(keyEvent.getCode().toString().equals("CAPS")){
                capsIsOn = !capsIsOn;
                capsLabel.setVisible(capsIsOn);
            }
        });

        VBox vBox = new VBox();
        vBox.getChildren().addAll(textField, capsLabel);

        stage = new Stage();
        stage.setScene(new Scene(vBox));
        stage.show();
    }

    public static void main(String[] args) { launch(args); }
}

或者,你可以设置一个计时器,让它不断地检查,我个人不喜欢不断使用计算机资源的想法,但这不是我的项目。

 类似资料:
  • 本文向大家介绍如何验证在JavaFX密码字段中输入的密码?,包括了如何验证在JavaFX密码字段中输入的密码?的使用技巧和注意事项,需要的朋友参考一下 文本字段接受并显示文本。在最新版本的JavaFX中,它仅接受一行。 与文本字段类似,密码字段接受文本,但是不显示给定的文本,而是通过显示回显字符串来隐藏键入的字符。 在JavaFX中,javafx.scene.control.PasswordFie

  • 主要内容:创建密码字段,示例用于密码输入。用户键入的字符通过显示回显字符串被隐藏。 创建密码字段 以下代码使用来自类的默认构造函数创建一个密码字段,然后为密码字段设置提示消息文本。 提示消息在字段中显示为灰色文本,并为用户提供该字段是什么的提示,而不使用标签控件。 类有方法来为控件设置文本字符串。对于密码字段,指定的字符串由回显字符隐藏。默认情况下,回显字符是一个点(或是星号)。 密码字段中的值可以通过方法获取。 示例 密码

  • 更新时间:2019-06-10 16:32:35 目标 当前模板可以让您学习如何响应设备推送的属性,把告警信息推送到钉钉群里。可以用于设备告警,提示等场景。 说明 有一系列的煤气检测器,侦听上报信息,如果上报告警信息则推送到钉钉群让维护人员前往检查。 创建产品 本次需要创建一个产品——一个煤气检测器(包含煤气数值一个浮点型数据),同时我们需要实例化3个设备。 创建一个煤气检测器产品。 添加一个煤气

  • 编辑:FXML文件

  • 我已经将我的项目迁移到androidX,我想实现一个带有用户积极和消极反馈的报警对话框。 我正在使用以下代码: 但我在运行应用程序时遇到了这个错误: IllegalStateException:您需要在此活动中使用theme.AppCompat主题(或后代)。

  • 问题内容: 如何实现android 警报管理器? 问题答案: 从服务设置警报: 如果要设置在电话启动时重复发出警报: 向添加权限和服务: 并创建一个新类: