为了账号安全,请及时绑定邮箱和手机立即绑定

如何使 JavaFX 文本字段不可见,但仍允许在其中输入文本

如何使 JavaFX 文本字段不可见,但仍允许在其中输入文本

MMTTMM 2022-09-01 17:25:30
我有一个javaFX应用程序,它从条形码扫描仪获取输入。条形码扫描仪被识别为键盘,并且在扫描任何条形码后始终在其输入后以换行符显示(因此会触发 onAction 事件)。目前,我有一个文本字段,它始终是聚焦并链接到条形码扫描仪的,但是我希望对用户隐藏它。我尝试使用setVisible(False),但这似乎禁用了文本字段(onAction未触发,文本字段始终为空)我还尝试将文本字段从屏幕上移开,这确实有效,但是因为屏幕必须可调整大小,我现在必须使用gridPane作为根,因此无法再执行此操作。只是想知道是否有任何东西可以使文本字段对用户不可见,但仍然允许启用它?
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您可以使用css隐藏文本字段。最简单的方法是将不透明度设置为 0


文本字段.css


.hidden{

    -fx-opacity: 0;

}

爪哇岛


GridPane root = new GridPane();

// Add stylesheet

root.getStylesheets().add("TextField.css");


TextField textField = new TextField();

// Add class

textField.getStyleClass().add("hidden");

另一方面,我真的会问自己,这个“黑客”是否是要走的路。如果您的条形码扫描仪只是插入文本,也许更好的解决方案是添加一个事件处理程序并相应地处理击键:


事件处理程序


root.addEventHandler(KeyEvent.ANY,(event)->{

    System.out.println(event);

});


查看完整回答
反对 回复 2022-09-01
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

您实际上不需要在场景中有一个。事实上,我不建议这样做,因为这会干扰焦点,并可能干扰布局。TextField


相反,我会向场景添加一个侦听器(或场景的根节点,以确保它或后代可以通过将属性设置为 ,如有必要)来获得焦点)。您可能需要使用事件过滤器,如果使用 的事件过滤器的节点可能具有焦点:focusTraversabletrueKEY_PRESSED


@Override

public void start(Stage primaryStage) throws IOException {

    StackPane root = new StackPane(new Button());

    Scene scene = new Scene(root);


    final StringBuilder string = new StringBuilder();

    scene.addEventFilter(KeyEvent.KEY_PRESSED, evt -> {

        KeyCode code = evt.getCode();

        if (code.isDigitKey()) {

            // input part of the information

            String name = code.toString();

            string.append(name.charAt(name.length() - 1)); // make sure numpad keys do not 

        } else if (code == KeyCode.ENTER) {

            // submit input

            submitCode(string.toString());

            string.setLength(0);

        }

    });


    primaryStage.setScene(scene);

    primaryStage.show();

}


private void submitCode(String code) {

    System.out.println(code);

}


查看完整回答
反对 回复 2022-09-01
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

查看完整回答
反对 回复 2022-09-01
  • 3 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信